0

好的,所以我有以下说明:

移动.W $1234, $8000

现在我很困惑 1234 美元和 8000 美元的寻址模式是绝对短还是绝对长。

如果有人能解释如何区分绝对短和绝对长,我也将不胜感激。谢谢。

4

2 回答 2

4

使用后缀.L.W表示长或短。在我使用的汇编程序中,绝对长是默认值。如果地址适合 16 位,其他汇编器可能会使用绝对短。

例如

# Move word from memory location 00001234 to 00008000.
MOVE.W $1234.W, $8000.L

# From 00001234 to FFFF8000.
MOVE.W $1234.L, $8000.W
于 2015-10-27T07:56:27.937 回答
1

绝对短/长是指地址寄存器地址。当 68k 读取指令时,绝对短地址总是从 16 位符号扩展到 32 位值(例如0xEDCB.w -> 0xFFFFEDCB )。使用绝对短寻址而不是绝对长寻址需要更少的时间和更少的空间,但是只有-0x8000-0x7FFF ( 0xFFFF8000-0x00007FFFF ) 可以是绝对短的,在任何其他情况下都必须使用绝对长。但是,如果您对空间和速度不感兴趣,您可能会完全忽略这一点,让您的汇编程序来决定。如果它足够聪明(通常情况并非如此),它会为你决定是否没有标记。

于 2015-12-30T13:42:42.813 回答