找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1235|回复: 3
打印 上一主题 下一主题
收起左侧

PIC33EP单片机汇编语言定义函数的入口参数默认分配给哪个寄存器?

[复制链接]
跳转到指定楼层
楼主
我看到一个PIC33EP单片机的例程程序,用汇编语言定义了一个正弦波查表程序,然后使用C语言来调用这个函数。汇编语言定义函数是带有一个形参的。程序详见附图。
疑问如下:
1)函数调用的形参值默认是传递给w0寄存器了,为什么是传递给w0寄存器,不是w1寄存器呢?
2)如果用汇编语言定义一个含有两个形参的函数,函数调用是形参会传递给哪两个寄存器?w0,w1?手册哪一部分有这个说明?

捕获2.JPG (20.6 KB, 下载次数: 114)

捕获2.JPG

捕获.JPG (34.89 KB, 下载次数: 104)

捕获.JPG
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:301191 发表于 2021-12-28 05:07 | 只看该作者
顶一下
回复

使用道具 举报

板凳
ID:959891 发表于 2021-12-28 08:53 | 只看该作者

谢谢置顶,希望有大牛帮忙解释一下。
回复

使用道具 举报

地板
ID:959891 发表于 2021-12-28 10:42 | 只看该作者
我已经找到了答案,这是因为C语言和汇编语言互相间的调用遵循ARM-Thumb Procedure Call Standard,不超过4个形参时,参数通过r0,r1,r2,r3来传递。如果超过4个形参,超过4的部分必须通过堆栈进行传递。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表