ARM汇编——PC和LR寄存器理解

本文介绍了ARM汇编中的PC(程序计数器)和LR(链接寄存器)的概念。通过示例代码和调试过程,解释了PC如何存储当前指令地址,并在顺序执行时自动递增。同时,探讨了LR在函数调用中的作用,如何保存返回地址,以及如何利用LR和PC配合实现函数返回。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.前言

        既然学C/C++,不了解一下嵌入式有点不合适,了解嵌入式之前看了一点汇编,那些寄存器太特么有意思了。讲真的,硬件确实比软件要复杂一些。

        对了,先推荐一首歌,《New Boy》——房东的猫,去年考研那段时间经常听,莫名让我心情激动,就喜欢在我房间里戴着耳机,喝着小酒,放着这首歌,很放松。年轻人,要积极阳光,奥利给了,伙计们。


1.PC

        pc,程序计数器,顾名思义,统计程序的数量呗。nonono,程序计数器(PC)的功能是用于存放指令的地址。程序执行时,PC的初值为程序第一条指令的地址,在顺序执行程序时,控制器首先按程序计数器所指出的指令地址从内存中取出一条指令,然后分析和执行该指令,同时将PC的值加1指向下一条要执行的指令。这是度娘说的。挺抽象的,我用代码演示就很容易懂了。环境是keil4,选的处理器是三星S3C2410A,ARM32位的。

.text
.global _start
_start:

ldr r0,=0x12345678		
mov r1,#1

.end

        给R0赋值0x12345678,给R1赋值1,然后我们编译,看下Debug。


        初始时,PC是等于0的

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值