Emerald@ ウィキ
ジャンプ命令
最終更新:
emerald-device
-
view
ジャンプ命令
ジャンプ命令には「jmp」を使う。
使う場合は jmp+(アドレス) という風に指定する。
プログラムを戻るジャンプ(上)ならばアドレスは見えているのでそれを指定すればいいが
プログラムを進むジャンプ(下)ならばアドレスは見えていないので一工夫必要になる。
使う場合は jmp+(アドレス) という風に指定する。
プログラムを戻るジャンプ(上)ならばアドレスは見えているのでそれを指定すればいいが
プログラムを進むジャンプ(下)ならばアドレスは見えていないので一工夫必要になる。
最初のjmp命令ではとりあえず適当なアドレス(ここでは0100)を入れておいてあとから書き加えるというもの。
書き加えられたところには jmp 010A という命令があり、アドレス0106から010Aにジャンプすることになっている。
つまりプログラムはアドレス0108のadd命令を実行せずに終わり、結果として最初に代入された値のままになっている。
書き加えられたところには jmp 010A という命令があり、アドレス0106から010Aにジャンプすることになっている。
つまりプログラムはアドレス0108のadd命令を実行せずに終わり、結果として最初に代入された値のままになっている。
このようにあとから変更することも可能。
ちなみにjmp命令のオペランドにはレジスタも指定可能。その場合はレジスタの値のアドレスにジャンプすることになる。
ちなみにjmp命令のオペランドにはレジスタも指定可能。その場合はレジスタの値のアドレスにジャンプすることになる。
添付ファイル