D7. 跳转与存储器访问指令-ARM体系结构与接口技术-嵌入式学习LV9

DAY7. ARM汇编指令集-跳转与储存器访问指令


如果出现图片无法查看可能是网络问题,我用的GitHub+图床保存的图片,可以参考我另外一篇文章GitHub的使用方法含网络问题解决
GitHub使用教程含网络问题_github加速器_肉丸子QAQ的博客-CSDN博客

1. 跳转指令

跳转指令:实现程序的跳转,本质就是修改了PC寄存器

main函数中调用子函数

  • 方式一:直接修改PC寄存器的值(不建议使用,需要自己计算目标指令的绝对地址)
		
MAIN: @这个只是一个标号,不是指令
		 MOV R1, #1
		 MOV R2, #2
		 MOV R3, #3
		 MOV PC, #0x18 @0x18是因为指令按照顺序存储,FUNC函数的起始位置是  MOV R6, #6  从上往下数是0x18
		 MOV R4, #4
		 MOV R5, #5	
FUNC:
		 MOV R6, #6
		 MOV R7, #7
		 MOV R8, #8
  • ​ 方式二:不带返回的跳转指令(B),本质就是将PC寄存器的值修改成跳转标号下指令的地址
MAIN:
		 MOV R1, #1
		 MOV R2, #2
		 MOV R3, #3
		 B   FUNC
		 MOV R4, #4
		 MOV R5, #5	
FUNC:
		 MOV R6, #6
		 MOV R7, #7
		 MOV R8, #8
  • 方式三:带返回的跳转指令,本质就是将PC寄存器的值修改成跳转标号下指令的地址,同时将跳转指令下一条指令的地址存储到LR寄存器
 MAIN:
		 MOV R1, #1
		 MOV R2, #2
		 MOV R3, #3
		 BL  FUNC
		 MOV R4, #4
		 MOV R5, #5	
 FUNC:
		 MOV R6, #6
		 MOV R7, #7
		 MOV R8, #8
		 MOV PC, L
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肉丸子QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值