arm汇编指令-2

文章详细介绍了ARM处理器中的汇编指令,特别是针对状态寄存器CPSR的读写操作,包括MRS和MSR指令。CPSR在CPU状态管理中扮演重要角色,USER模式下无法直接修改。此外,提到了软中断(SWI)的使用以及协处理器指令,如MRC和MCR,用于数据处理和通信。伪指令和伪操作的概念也有所阐述,它们是编译器层面的扩展,帮助简化编程。

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

目录

汇编指令

状态寄存器指令

异常中断产生指令(异常处理时讲)

了解:协处理器指令+伪指令+伪操作


                                                      

汇编指令

状态寄存器指令

        对CPSR进行读写操作//其他都不能动CPSR (SWI 指令是linux内核有,所以arm为了匹配才有的指令)(CPSR保存cpu的状态、模式、中断中断开关、运算状态,非常重要,不能任意更改,只有一类指令能操作这个寄存器)

1》读cpsr 指令mrs

2》写cpsr 指令 msr :一般用不了,上电就是svc模式,能切换到user模式(也可以切换到其他模式)但是user模式不能切换到svc模式 其他的可以切换到svx模式  user的权限是最低的 为非特权模式

注:修改CPSR的控制域(bit[7:0]),修改CPSR时必须指定修改哪个区域

USER模式下不能修改CPSR的值,防止应用程序修改CPU状态,保护操作系统

CPSR_C修改的是CPSR的低八位ctrl(控制)域,一般都只修改C域

异常中断产生指令(异常处理时讲)

触发软中断,常用于内核的系统调用 //SWI:软中断

 

 

正真触发软中断的处理过程代码验证:

视频动态演示: https://live.youkuaiyun.com/v/267716

了解:协处理器指令+伪指令+伪操作

  • 协处理器指令

操作协处理器的指令(用不到) (协助cpu处理数据)

1.数据运算
2.内存访问
3.与主处理器通信
MRC 将协处理器中寄存器的内容读取到ARM处理器的寄存器中
MCR 将ARM理器中寄存器的内容读取到协处理器的寄存器中

  • 伪指令

本质:本身不是指令,但是cpu替换成等效的操作。(可能会编程成)

举例1:延时一个指令周期(耗时一条指令的时间)  (cpu没有这个指令)
	NOP    ;执行NOP和MOV R0,R0一个效果,执行NOP,cpu替换成MOV R0,R0。
	MOV R0,R0  
LDR的两种形式         
;->指令
        LDR R1,[R2]     
;->伪指令
	LDR R1,=0x12345678     ;R1 = 0x12345678
	;可以将任何一个32bit的数据放入寄存器

  • 伪操作

指令是arm公司规定的,而伪操作是编译器规定的,不同的编译器伪操作指令不同。

(我们学的linux,用linux的编译器)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值