mov ip,lr奇怪的指令,在u-boot中

[复制链接]
 楼主| luocolor 发表于 2007-9-29 09:48 | 显示全部楼层 |阅读模式
在u-boot的start.s中看到这个指令,不懂了!<br />这是arm指定么?还是?

评论

ip是r12的寄存器别名,这句话完全可以理解为将链接寄存器地址放入r12寄存器中。ip与通用寄存器的关系可以参考博文https://blog.csdn.net/myxmu/article/details/13630255  发表于 2023-2-17 11:00
chunk 发表于 2007-9-29 10:21 | 显示全部楼层

IP是指令指针寄存器吗?

又让我想起了“逆指令流”。程序中的“跳转”是一件很有意思的事,以前一度认为古怪的转移不合乎软件工程,GOTO不是要取消了吗?后来发现也未必,一个GOTO都没有的程序照样是糊涂帐。<br /><br />后来又听N多人说C语言将淘汰汇编的,唉。。。咱大家伙真的拿计算机当科学吗?
 楼主| luocolor 发表于 2007-9-29 10:39 | 显示全部楼层

???

指令指针寄存器----&gt&nbsp;x86?<br />现在是说arm呢!
dld2 发表于 2007-9-29 10:44 | 显示全部楼层

貌似

在arm中是mov&nbsp;pc,lr<br />也许为了可移植,使用宏定义把pc定义为ip。
 楼主| luocolor 发表于 2007-9-29 11:07 | 显示全部楼层

在2410的datasheet中发现这个

发现这个指令<br />EORS&nbsp;ip,&nbsp;a4,&nbsp;a2,&nbsp;ASR&nbsp;#32<br />说明这个ip本身就是一个寄存器,但对于它的定义说明却没有找到
 楼主| luocolor 发表于 2007-9-29 11:14 | 显示全部楼层

ok,找到了,看下面

APCS,ARM&nbsp;过程调用标准(ARM&nbsp;Procedure&nbsp;Call&nbsp;Standard),提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确的限制。它们可以编译自&nbsp;C、&nbsp;Pascal、也可以是用汇编语言写成的。<br /><br />APCS&nbsp;对我们通常称为&nbsp;R0&nbsp;到&nbsp;R14&nbsp;的寄存器起了不同的名字。使用汇编器预处理器的功能,你可以定义&nbsp;R0&nbsp;等名字,但在你修改其他人写的代码的时候,最好还是学习使用&nbsp;APCS&nbsp;名字。&nbsp;<br /><br />寄存器名字&nbsp;<br />Reg&nbsp;#&nbsp;&nbsp;APCS&nbsp;&nbsp;&nbsp;意义&nbsp;<br />R0&nbsp;a1&nbsp;工作寄存器&nbsp;<br />R1&nbsp;a2&nbsp;&quot;&nbsp;<br />R2&nbsp;a3&nbsp;&quot;&nbsp;<br />R3&nbsp;a4&nbsp;&quot;&nbsp;<br />R4&nbsp;v1&nbsp;必须保护&nbsp;<br />R5&nbsp;v2&nbsp;&quot;&nbsp;<br />R6&nbsp;v3&nbsp;&quot;&nbsp;<br />R7&nbsp;v4&nbsp;&quot;&nbsp;<br />R8&nbsp;v5&nbsp;&quot;&nbsp;<br />R9&nbsp;v6&nbsp;&quot;&nbsp;<br />R10&nbsp;sl&nbsp;栈限制&nbsp;<br />R11&nbsp;fp&nbsp;桢指针&nbsp;<br />R12&nbsp;ip&nbsp;&nbsp;&nbsp;<br />R13&nbsp;sp&nbsp;栈指针&nbsp;<br />R14&nbsp;lr&nbsp;连接寄存器&nbsp;<br />R15&nbsp;pc&nbsp;程序计数器&nbsp;<br /><br />&nbsp;译注:ip&nbsp;是指令指针的简写。&nbsp;<br /><br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

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

40

主题

105

帖子

0

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