首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc m68hc11 (hc12)端口帧指针管理

gcc m68hc11 (hc12)端口帧指针管理
EN

Stack Overflow用户
提问于 2012-02-24 15:28:58
回答 1查看 116关注 0票数 1

这是我编译空主函数时得到的代码:

代码语言:javascript
复制
main:
    movw    _.frame,2,-sp
    sts     _.frame
    ldd     #0
    movw    2,sp+,_.frame
    rts

(使用-m68hc12标志编译;输出类似于没有标志)。其他基本函数(不一定是主函数,也不一定是空函数)遵循相同的模式。

我不明白_.frame是什么。根据端口的源代码,它应该是一个寄存器。在hc11 /hc12上只有5个硬寄存器: D、X、Y、SP和PC。那么汇编程序对虚拟帧指针寄存器做了什么呢?

问题的第二部分是帧指针本身的外观。端口似乎实现了框架指针消除所需的宏和函数,那么为什么不将其替换为对堆栈指针的引用?

编辑:

我已经找到了我问题的答案。m68hc11端口通过向预定义的内存位置分配符号寄存器名来模拟一些硬寄存器(包括帧指针)。这是在larith.asm文件中完成的,它显然不仅仅是一个算术库。

EN

回答 1

Stack Overflow用户

发布于 2012-02-26 10:12:33

没有检查gcc的确切来源,但我认为这里的_.frame只是一种内部使用一些全局数据的软寄存器。

以下链接可部分证明这一点:

http://tech.groups.yahoo.com/group/gnu-m68hc11/message/3621

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

https://stackoverflow.com/questions/9433325

复制
相关文章

相似问题

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