首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Easy68k汇编ORG指令

Easy68k汇编ORG指令
EN

Stack Overflow用户
提问于 2013-03-17 08:07:26
回答 1查看 1.7K关注 0票数 1

我知道有人问过类似的问题,但还是要听。

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

虽然答案是“按个人惯例”,但我更有兴趣了解以下各点:

  • 设置org指令的好处是什么,CPU可以执行从0x0到0xffffffff的任何东西,那么有什么必要将程序的启动抵消到0x1000呢?

例如:

代码语言:javascript
复制
    org $1000
start:
    moveq #9, d0
    trap  #15

    end start

工作,但被向下的4096字节抵消。

代码语言:javascript
复制
start:
    moveq #9, d0
    trap  #15

    end start

也能工作,但一点也不被抵消。

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

迄今为止的结论

  • Easy68k没有全局变量的默认位置,它们被放置在pc上(通常按约定在程序的末尾)。
  • Easy68k的默认堆栈指针为0,向下增加到0 0xffffffe,向下(它是对齐的):这意味着与[0,0x1000)区域没有冲突。实际上,在破坏[0,0x1000)区域之前,它会破坏代码。

我真的很好奇

提前谢谢!

~德米特里

EN

回答 1

Stack Overflow用户

发布于 2016-07-07 11:54:47

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15458764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档