Assembly 为什么LEA 0x89AB(%A0),%A0在68000程序集中是非法指令

Assembly 为什么LEA 0x89AB(%A0),%A0在68000程序集中是非法指令,assembly,68000,Assembly,68000,这是编程卡: 为什么LEA 0x89AB(%A0),%A0在68000汇编中是非法指令?根据给出的示例,我推断16位立即数是符号扩展的。因此,我猜索引寻址模式中的16位偏移量也是有符号的。因此,0x89ab是一个无效的偏移量,因为它不适合16位有符号数字。似乎您将x86误认为是m68k(摩托罗拉68000)。它们在很多细节上都不同。寄存器A0来自m68k,但不是x86。@Netch:m68k有一条LEA指令,其助记符与x86相同@彼得科德斯见问题编辑历史:它最初在所有文本中包含“86”。这就是

这是编程卡:


为什么LEA 0x89AB(%A0),%A0在68000汇编中是非法指令?

根据给出的示例,我推断16位立即数是符号扩展的。因此,我猜索引寻址模式中的16位偏移量也是有符号的。因此,0x89ab是一个无效的偏移量,因为它不适合16位有符号数字。

似乎您将x86误认为是
m68k
(摩托罗拉68000)。它们在很多细节上都不同。寄存器A0来自m68k,但不是x86。@Netch:m68k有一条LEA指令,其助记符与x86相同@彼得科德斯见问题编辑历史:它最初在所有文本中包含“86”。这就是为什么我注意到了错误的寄存器。