ARM体系结构(八)

专用指令

9.1 状态寄存器传送指令

访问(读写)CPSR寄存器
读CPSR:MRS R1,CPSR
写CPSR:MSR CPSR,#0x10 //User模式
–修改模式,设置状态等使能否
//在User模式下,不能修改CPSR,非特权模式
在这里插入图片描述

9.2 软中断指令

.text			@ 表示当前为代码段
.global _start	@ 将_start定义为全局符号
_start:			@ 汇编的入口
	
	@ 异常向量表
	B MAIN
	B .
	B SWI_HANDLER
	B .
	B .
	B .
	B .
	B .
	@ 应用程序
	
MAIN:	
	MOV R13,#0x40000020
	MSR CPSR,#0x10
	MOV R1,#1
	MOV R2,#2
	SWI #1           @ 触发软中断
	ADD R3,R1,R2
	B stop
	
SWI_HANDLER:
	STMFD R13!,{R1,R2,LR}
	MOV R1,#10
	MOV R2,#20
	SUB R3,R2,R1
	LDMFD R13!,{R1,R2,PC}^

stop:			@ 死循环,防止程序跑飞
	B stop

.end			@ 汇编的结束

在这里插入图片描述

9.3 协处理器指令

操控协处理器的指令
ARM 协处理器指令可分为以下 3 类。
(1)协处理器数据操作。包括 CDP 指令。
(2)协处理器存储器访问指令。包括 LDC 指令(写入)和 STC 指令(读取)。
(3)协处理器寄存器传送指令。MRC:将协处理器中寄存器的数据传送到arm处理器中的寄存器 MCR:将arm处理器中的寄存器的数据传送到协处理器中寄存器

9.4 伪指令

指令:能够编译生成一条32bit机器码,并且能被CPU识别和执行
伪指令:本身不是指令,编译器可以将其替换成若干条指令
NOP == MOV R0,R0
LDR R1,=0x12345678 @可以将任意一个32位的数据放到寄存器中
@ LDR R1,=stop @ 将STOP的地址写入寄存器
LDR R1,stop @ 将STOP地址中的内容写入寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值