好的,我有以下指示:
MOVE.W $ 1234,$ 8000
现在我很困惑1234美元和8000美元的寻址模式是绝对的短期还是绝对的。
如果有人能解释如何区分绝对短期和绝对长期,我也会非常感激。感谢。
答案 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 )可以绝对短,在任何其他情况下必须使用绝对长。但是,如果你没有对空间和速度进行模糊测试,你可能完全忽略了这一点,让你的汇编者决定。如果足够聪明(通常情况并非如此),如果没有标记,它将决定你。