ARM体系结构与编程学习笔记2

本文详细介绍了ARM指令集的分类,包括数据处理指令如ASR、LSL、LSR等,以及各种寻址方式,如立即数、寄存器、寄存器移位和Load/Store指令的寻址。还讨论了如何根据条件码执行指令以及内存地址的计算方法。

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

1:ARM指令分类
1:ARM指令集可以分为跳转指令,数据处理指令,程序状态寄存器(PSR)传输指令,load/Store指令,协处理指令和异常中断产生指令
2:ARM指令集字长为固定的32位,一条典型的ARM指令编码格式如下
在这里插入图片描述
在这里插入图片描述
opcode:指令助记符; 如ADD表示算法加操作指令
cond:执行条件;
S:是否影响CPSR寄存器的值;
Rd:目标寄存器;
Rn:第1个操作数的寄存器;
operand2:第2个操作数;
大多数时候可以根据CPSR的条件标志位觉得是否该执行指令。当条件满足时才执行,否则不执行。

条件码16个,指令的条件码
在这里插入图片描述

2.2.1 数据处理指令的操作数寻址方式

ASR :算术右移
LSL:逻辑左移
LSR :逻辑右移
ROR:循环右移
RRX:扩展的循环右移

MOV R0,R1,LSL,#3; R0=R1*(23);
ADD R0,R1,R1,LSL #3; R0=R1+R1*(2
3);
SUB R0,R1,R2,LSR #4 ;R0=R1-R2/(2**4)
MOV R0,R1,ROR,R2 ;R0=R1 循环右移动R2位。

**2.2.2、立即数方式,**必须遵循规则:每一个立即数由一个8位的常数循环右移偶数位得到。公式表达为:立

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值