Assembly ORG指令在汇编代码中做什么?
作为参考,该代码适用于摩托罗拉68008 假设我有如下代码:Assembly ORG指令在汇编代码中做什么?,assembly,motorola,68000,Assembly,Motorola,68000,作为参考,该代码适用于摩托罗拉68008 假设我有如下代码: org 200 sequenceO: ds.b 5 sequenceN: ds.b 5 move.w #sequenceO, A0 move.w #sequenceN, A1 我认为A0将保持值200,A1将保持值205,这对吗 过去一篇论文中的一个试题是:“sequence0和sequenceN的物理地址是什么?”,答案是“200和205”,还是“200-204和205-209” 我见过一些带有多个组织指令的代码,例如 组织10
org 200
sequenceO: ds.b 5
sequenceN: ds.b 5
move.w #sequenceO, A0
move.w #sequenceN, A1
sequenceN
的地址超出了sequence0
的5个字节org
s只应用于它们后面的代码,因此在这种情况下array1
将为100美元。由于在后一个org
之后没有代码或数据生成,因此汇编程序基本上忽略了它您正在使用:
MOVE.W#sequenceO,A0
因此,您只将地址的低位字(16位)加载到A0
。
这只能在非常低的内存中工作(A0
在$00010000
下)
通常,在地址寄存器上使用MOVE.W
会很棘手
尝试:LEA#sequence0,A0
(将32位地址加载到A0
)
大多数汇编程序还将执行以下操作:
MOVEA.L #sequence0, A0
谢谢,戴夫·斯莫尔我也这么认为。然而,我在课堂讲稿或互联网上找不到任何细节,我想确保我已经完全了解了它的工作原理。我不想在考试中犯一个愚蠢的错误,我假设SequenceO指向200,而SequenceO指向201。那么“组织指令”是什么意思@dmor?