寻址模式:区分绝对短和绝对长?

时间:2015-10-26 10:23:47

标签: 68000 addressing-mode easy68k

好的,我有以下指示:

  

MOVE.W $ 1234,$ 8000

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

如果有人能解释如何区分绝对短期和绝对长期,我也会非常感激。感谢。

2 个答案:

答案 0 :(得分:4)

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

E.g。

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

# From 00001234 to FFFF8000.
MOVE.W $1234.L, $8000.W

答案 1 :(得分:1)

绝对短/长指地址寄存器地址。当68k读取指令时,绝对短地址始终从16位符号扩展到32位值(ex 0xEDCB.w - > 0xFFFFEDCB )。在绝对长度上使用绝对短寻址所需的时间更少,空间更少,但只有 -0x8000-0x7FFF 0xFFFF8000-0x00007FFFF )可以绝对短,在任何其他情况下必须使用绝对长。但是,如果你没有对空间和速度进行模糊测试,你可能完全忽略了这一点,让你的汇编者决定。如果足够聪明(通常情况并非如此),如果没有标记,它将决定你。