Easy68k组装ORG指令

时间:2013-03-17 08:07:26

标签: assembly easy68k

我知道有类似的问题,但无论如何都要听。

本学期我写了很多Easy68k程序,我很好奇为什么org指令总是设置为1000美元,或2000美元,或2500美元。

虽然答案是“按照个人惯例”,但我更感兴趣的是理解以下内容:

  • 设置org指令有什么好处,CPU可以执行从0x0到0xffffffff的任何操作,那么需要将程序一直偏移到0x1000?

例如:

    org $1000
start:
    moveq #9, d0
    trap  #15

    end start

有效,但向下偏移4096字节

start:
    moveq #9, d0
    trap  #15

    end start

也有效,但根本没有抵消

那么为什么需要这个指令呢?我没有为任何特定目的保留[0x0,0x1000],那么保持这种偏移有什么意义呢?

到目前为止的结论

  • Easy68k没有全局变量的默认位置,它们被放置在pc(通常按照惯例在程序结束时)。
  • Easy68k的默认堆栈指针为0,向下增长为0xffffffe,向下(字对齐):这意味着与[0,0x1000]区域没有冲突。实际上,它会在破坏[0,0x1000)区域之前破坏代码。

我真的很好奇。

提前致谢!

〜梅德

1 个答案:

答案 0 :(得分:0)

地址0到大约地址$ 800被保留用于68000中的异常向量。$ 1000用作默认起始地址以避开保留区域。堆栈默认为内存顶部,并向地址0增长。