ARM64汇编

MRS/MSR

MRS
功能:将状态寄存器的内容传送至通用寄存器。
MRS{<条件码> Rd,CPSR}SPSR
例子:
MRS R0,CPSR //将CPSR的内容传送到R0
MRS 目的寄存器 源寄存器

MSR(state->reg)
功能: 将通用寄存器的内容传送至状态寄存器。
MSR CPSR_c,R0 //将R0中内容传送到CPSR_c。
MSR 源寄存器 目的寄存器

tbz/tbnz

tbz
tbz branch zeo. 测试位为0,则跳转。
tbz w24, #0x6, 0x19307005c ; 即w24第6位,若为0,则跳转到0x19307005c执行

tbnz
test branch no zero. 测试位不为0,则跳转。
tbnz w24, #0x6, 0x19307005c ; 即w24第6位,若不为0,则跳转到0x19307005c执行

CBNZ
CBNZ ,

CBZ指令
CBZ ,

PSTATE

PSATE有下面字段:

专用寄存器说明
CurrentEL存放当前的异常级别
DAIF指定当前的中断屏蔽位
NZCV保持条件标志
SPSel在EL1或更高版本中,在当前异常级别的选择

操作指令

操作数PSTATE字段注意
DAISetD,A,I,F将PSATE.{D,A,I,F}位设置为1
DAIClrD,A,I,F将PSATE.{D,A,I,F}位设置为0
SPSelSP将PSATE.SP设置为1或0

BIC/ORR/EOR

bic指令的格式为:
bic{条件}{S} Rd,Rn,operand
bic指令将Rn 的值与操作数operand2 的反码按位逻辑”与”,结果存放到目的寄存器Rd 中。
bic R0,R0,#0x1F ; //将R0最低5位清零,其余位不变

str/ldr

str: 把寄存器的值加载到指定地址
str r1,[r2] ;将r1中的值存到r2所指定的地址中
str r1,[r2,#4];将r1中的值存到r2+4所指定的地址中
str r1,[r2],#4; 将r1中的值存到r2所指定的地址中,同时r2=r2+4

ldr: 把指定内存的值加载到寄存器中。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值