我在 Uni 学了一些 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
谁能用简单的话向我解释每条指令中发生了什么?
如果需要,请详细说明(前/后增量等)。
谢谢!!;)
我在 Uni 学了一些 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
谁能用简单的话向我解释每条指令中发生了什么?
如果需要,请详细说明(前/后增量等)。
谢谢!!;)
广告说明:
正如 lea 指令的名称所暗示的那样,它用于将地址加载到地址寄存器中。它不会从间接寻址中移动数据。我还没有检查这些说明是否有效,而且我的 68k 技能现在已经很生疏了,所以我认为它们是有效的。未在 A2 中指定索引寄存器宽度会引入歧义。在我的脑海中,我不记得 .W 或 .L 是否是此处的默认寄存器宽度,因此指定这可能是一个好主意。
广告移动说明:
为了完整起见,寻址模式为: