Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 如何使用MOVE模拟LEA指令?_Assembly_Memory Address_Mov_68000_Easy68k - Fatal编程技术网

Assembly 如何使用MOVE模拟LEA指令?

Assembly 如何使用MOVE模拟LEA指令?,assembly,memory-address,mov,68000,easy68k,Assembly,Memory Address,Mov,68000,Easy68k,如何使用MOVE模拟LEA指令?这可能吗?我使用了x86汇编和MOV指令,如果它是一个符号,只需复制addAddress(不确定它是否依赖于汇编)。但是在6800MOVE中看起来行为不同,例如,在以下说明中D1和A1具有不同的值。LEA指令究竟是如何工作的?我怎样才能模拟呢?i、 例如,做LEA所做的事而不用它。我认为,随着移动和其他一些。另外,事实上,MOVE是在D1中添加的,它似乎不是标签的十六进制值 MOVE T(PC),D1 LEA T,A1 对于地址寄存器: MOVEA.L

如何使用MOVE模拟
LEA
指令?这可能吗?我使用了x86汇编和
MOV
指令,如果它是一个符号,只需复制addAddress(不确定它是否依赖于汇编)。但是在6800
MOVE
中看起来行为不同,例如,在以下说明中
D1
A1
具有不同的值。
LEA
指令究竟是如何工作的?我怎样才能模拟呢?i、 例如,做
LEA
所做的事而不用它。我认为,随着
移动
和其他一些。另外,事实上,
MOVE
是在
D1
中添加的,它似乎不是标签的十六进制值

  MOVE T(PC),D1
  LEA T,A1

对于地址寄存器:

MOVEA.L #T,A<n>
MOVE.L #T,D<n>
MOVEA.L#T,A
对于数据寄存器:

MOVEA.L #T,A<n>
MOVE.L #T,D<n>
MOVE.L#T,D

请注意,
MOVE
将更新一些条件标志,而
LEA
MOVEA
都不会更新这些标志。

关于
MOVEA.L T,A1
的情况如何?没有任何更改。同样的行为。寄存器中的值相同:一个不同于另一个。Oops。这应该是
MOVEA.L#T,A1
。或者将地址放入数据寄存器:
MOVE.L#T,D1
(注意
MOVE
影响一些条件标志,而
MOVEA
LEA
则不影响)。正是这样!你救了我一天。将其发布为我接受的答案,然后,
MOVE
本身默认为什么
MOVE.L
MOVE.W
MOVE.B
?我将使用
MOVEA
而不是。非常感谢!