虽然为了好玩而进行逆向工程,但我遇到了以下装配:
move.b (a1)+,(a0)+
我知道括号表示“价值”,但加号代表什么?我如何准确地将其转换为C?
答案 0 :(得分:4)
(a1)+
访问a1
处的内存,并按操作大小递增a1
。在这种情况下1.您所拥有的内容看起来像是复制内存的典型循环的一部分。
答案 1 :(得分:4)
括号表示间接寻址,+
表示后增量。在这种情况下,a1
和a0
将在执行指令后增加操作的大小。另一种常见的寻址模式是使用预递减的间接寻址-(An)
。
对于源寄存器和目标寄存器使用后递增的间接寻址的move
指令的典型用法是将数据从一个存储器位置复制到另一个存储器位置。
Programmer's Reference Manual对于任何M68000程序员都是非常宝贵的。