求助:arm汇编中,如何传递参数给子程序

[复制链接]
3093|5
 楼主| crystal28 发表于 2007-10-22 18:58 | 显示全部楼层 |阅读模式
1,若参数数目小于等于4,一定会通过r0--r3四个寄存器传递参数给子程序,对不对?和编译器优不优化有什么关系<br />2,若参数数目大于4,会通过栈和寄存器传递参数?<br /><br />
wishcom 发表于 2007-10-22 22:15 | 显示全部楼层

建议LZ看看“ATPCS.pdf”

  
 楼主| crystal28 发表于 2007-10-23 12:14 | 显示全部楼层

谢谢楼上,还有问题

我用Evc4.0自带的arm编译器armasm编译如下简单语句不过,请帮忙:<br />loop:<br />&nbsp;&nbsp;&nbsp;&nbsp;bne&nbsp;loop<br /><br />提示<br />D:1.asm(9)&nbsp;:&nbsp;error&nbsp;A0034:&nbsp;undefined&nbsp;symbol:&nbsp;loop<br />&nbsp;&nbsp;bne&nbsp;loop<br />这个编译器的帮助我也找不到,google也没找到有用的信息。但是我发现把loop换成绝对地址就能过,比如:<br />100:<br />bne&nbsp;100&nbsp;//OK!<br />如何解决?谢谢。<br />
xieqin 发表于 2007-10-23 13:15 | 显示全部楼层

"loop" != "loop:"

去掉loop后的&quot;:&quot;
 楼主| crystal28 发表于 2007-10-23 14:01 | 显示全部楼层

感谢楼上。

  
 楼主| crystal28 发表于 2007-10-23 19:30 | 显示全部楼层

还有问题,这段arm汇编代码如何理解

and&nbsp;r12,&nbsp;%[pixel],&nbsp;#7<br />:&nbsp;[pixel]&quot;+r&quot;(pixel)<br /><br />1,第二行[pixel]是做什么用的,哪里有资料,<br />如果第二行这样:&nbsp;&quot;+r&quot;(pixel)我可以理解<br /><br />2,第一行&nbsp;%[pixel]指什么?变量pixel的值吗还是pixel指向的内存的值?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

45

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部