打印

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

[复制链接]
6596|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
luocolor|  楼主 | 2007-9-29 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在u-boot的start.s中看到这个指令,不懂了!
这是arm指定么?还是?
评论
huyimi 2023-2-17 11:00 回复TA
ip是r12的寄存器别名,这句话完全可以理解为将链接寄存器地址放入r12寄存器中。ip与通用寄存器的关系可以参考博文https://blog.csdn.net/myxmu/article/details/13630255 

相关帖子

沙发
chunk| | 2007-9-29 10:21 | 只看该作者

IP是指令指针寄存器吗?

又让我想起了“逆指令流”。程序中的“跳转”是一件很有意思的事,以前一度认为古怪的转移不合乎软件工程,GOTO不是要取消了吗?后来发现也未必,一个GOTO都没有的程序照样是糊涂帐。

后来又听N多人说C语言将淘汰汇编的,唉。。。咱大家伙真的拿计算机当科学吗?

使用特权

评论回复
板凳
luocolor|  楼主 | 2007-9-29 10:39 | 只看该作者

???

指令指针寄存器----> x86?
现在是说arm呢!

使用特权

评论回复
地板
dld2| | 2007-9-29 10:44 | 只看该作者

貌似

在arm中是mov pc,lr
也许为了可移植,使用宏定义把pc定义为ip。

使用特权

评论回复
5
luocolor|  楼主 | 2007-9-29 11:07 | 只看该作者

在2410的datasheet中发现这个

发现这个指令
EORS ip, a4, a2, ASR #32
说明这个ip本身就是一个寄存器,但对于它的定义说明却没有找到

使用特权

评论回复
6
luocolor|  楼主 | 2007-9-29 11:14 | 只看该作者

ok,找到了,看下面

APCS,ARM 过程调用标准(ARM Procedure Call Standard),提供了紧凑的编写例程的一种机制,定义的例程可以与其他例程交织在一起。最显著的一点是对这些例程来自哪里没有明确的限制。它们可以编译自 C、 Pascal、也可以是用汇编语言写成的。

APCS 对我们通常称为 R0 到 R14 的寄存器起了不同的名字。使用汇编器预处理器的功能,你可以定义 R0 等名字,但在你修改其他人写的代码的时候,最好还是学习使用 APCS 名字。 

寄存器名字 
Reg #  APCS   意义 
R0 a1 工作寄存器 
R1 a2 " 
R2 a3 " 
R3 a4 " 
R4 v1 必须保护 
R5 v2 " 
R6 v3 " 
R7 v4 " 
R8 v5 " 
R9 v6 " 
R10 sl 栈限制 
R11 fp 桢指针 
R12 ip   
R13 sp 栈指针 
R14 lr 连接寄存器 
R15 pc 程序计数器 

 译注:ip 是指令指针的简写。 

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

105

帖子

0

粉丝