我在大学学习了68k / Coldfire,并且难以理解更复杂的寻址模式(数字位于取消引用的括号附近)。
我认为这里的例子是最好的:
A) lea:
A1) lea $5(a1,a2.l), a0
A2) lea -1(a1,a2), a0
B) move:
B1) move.b 1(a1),d0
B2) move.b -2(a1),d0
有人可以用简单的语言向我解释每条指令中发生了什么吗?
请根据需要详细说明(递增/递减等)。
谢谢!! ;)
答案 0 :(得分:5)
广告说明:
正如lea指令的名称所暗示的那样,它用于将地址加载到地址寄存器中。它不会从间接寻址中移动数据。我尚未检查这些说明是否有效,我的68k技能现在还很生锈,所以我认为它们是有效的。不指定A2中的索引寄存器宽度会引起歧义。从我的头顶开始,我无法回忆起.W或.L是此处的默认寄存器宽度,因此指定它可能是一个好主意。
广告移动说明:
为完整起见,寻址方式为: