LEA和MOVE.L之间的区别?

dyn*_*mic 7 assembly 68000

之间有什么区别吗?

LEA $1000,A0
Run Code Online (Sandbox Code Playgroud)

MOVE #$1000,A0
Run Code Online (Sandbox Code Playgroud)

将地址放在地址注册表中?

Dur*_*dal 8

在这种情况下,会出现无可见差异(不同于接受的答案权利要求-该MOVE示例被汇编为MOVEA其不会改变CCR,见M68K参考手册PG 4-116 4-120到).


Gun*_*iez 5

lea指令不影响move指令所在的标志.具体而言Z,C将在之后清除move #$1000,a0.


Mic*_*ier 5

Durandal 是正确的,涉及地址寄存器的操作通常对处理器标志没有影响,在这种特殊情况下,两条指令的行为相同并占用完全相同的 cpu 时间(使用短寻址模式的 8 个周期或使用长模式的 12 个周期)。

MOVE xx,an 不是真正的指令,它是汇编器允许的,但是如果您查看反汇编结果,您将看到实际指令是 MOVEA。