0

例如:MOVE.W $1234,$8000

有人可以告诉我源使用的是什么(长或短)以及目的地使用的是什么(长或短)。你能解释一下如何发现这一点。

谢谢。

4

2 回答 2

2

它可能是汇编器决定使用的任何东西。

要强制它,请使用适当的后缀

move.w ($1234).w, ($8000).l

使用短(也称为“近”)源但长(又名“远”)目标地址。

根据我的(半古代)经验,您不需要经常关心这一点,只需让汇编器完成其工作即可。

于 2014-10-27T12:23:07.770 回答
0

除非通过提示汇编器明确指定(符号可能会因所使用的汇编器而略有不同,$1234.w 会提示汇编器使用短模式),这取决于您使用的汇编器默认完成的操作。

一个常见且明智的选择是尽可能使用较短的变体;例如,介于 -32768 到 32767 之间的任何东西都组装成短的,其他任何东西都组装成长的。应用此规则,$1234 将被组合为短,而 $8000 将组合为长(因为当处理器评估时,$8000.w 将产生 $FFFF8000 的有效地址;正如 68k 系列手册中明确指出的那样,地址操作数小于 32位大小,在使用前被符号扩展为 32 位)。

于 2014-10-27T17:42:46.587 回答