arm汇编指令-2

目录

汇编指令

状态寄存器指令

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

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


                                                      

汇编指令

状态寄存器指令

        对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.csdn.net/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的编译器)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值