Как да напиша самопроменящ се код в сборка на mips 32, който кара една функция да извиква друга функция (без да добавя извикване на функция в нея)? Трябва да променя кода на функцията по време на изпълнение, така че да извиква другата функция.
самопроменящ се код в асемблиране
Отговори (1)
В името на всичко свято НЕ!
- Асемблерът често е вграден в ROM, така че не работи.
- Всяка ОС със сигурност, струваща пукната пара, няма да ви позволи да променяте кодови сегменти или да изпълнявате данни.
- Има специален ад, запазен за тези, които го правят, ограден от проклятията на тези от нас, които някога е трябвало да поддържат проклетите неща!
MIPS има режим на регистриране за скокове -
jr $rs
Преместете адреса, до който искате да преминете, в регистъра и преминете към него. Това е функционален еквивалент на натискане на адреса в стека и извършване на връщане. Ако искате да извикате функцията, поставете jump в нейната собствена подпрограма, така че връщането от извиканата функция да се върне обратно към извикващия.
person
Mike
schedule
27.03.2015