ARM ® and Thumb ®-2 指令系统

本文详细介绍了ARM指令集中各类关键词的含义与用途,包括寄存器移位方式、操作数选择、程序状态寄存器使用等核心概念。适用于对ARM体系结构有一定了解的技术人员。

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

指令表关键词    
Rm {, <opsh>}寄存器移位方式,将寄存器的移位结果作为操作数而Rm值保持不变   
<Operand2>灵活的使用第二个操作数。移位和循环最合适作为第二操作数的一部分使用<reglist>由大括号括起来的一些用逗号分割的寄存器列表。如:{ and }. 
<fields>查看程序状态寄存器域目录.<reglist-PC>加载或存储的寄存器列表,但不含程序计数器寄存器。 
<PSR>包含CPSR (当前程序状态寄存器) SPSR (程序状态保存寄存器<reglist+PC>须有程序计数器寄存器列表。将SPSR拷贝到CPSR中,用于从异常处理返回。 
C*, V*标志值在V4及之前的架构中是不确定的, V5及之后则是不变的.+/-正或负. (+ 有可能被忽略.) 
<Rs|sh>可能是Rs或一个可移位的立即数. 值由寄存器中可用的各种移位方式进行 §ARM体系结构版本 
 任意位循环移动得到<iflags>中断标志. 一个或多个异常,中断,快速中断 
x,yB 指寄存器低位 [15:0], T 指高位[31:16]. (Bottom,Top)<p_mode>识别处理机模式 
<imm8m>ARM: 32位常数,由一个8位数循环右移偶数位得到。 SPm由<p_mode>区分的处理机模式的堆栈指针 
 Thumb: 32位常数,由一个8位数左移一位或多位数得到。<lsb>位域的最低有效位 
 型如以下形式之一: 0xXYXYXYXY, 0x00XY00XY or 0xXY00XY00<width>位域的宽度. <width> + <lsb> 须<=32 
<prefix>相似指令的前缀{X}RsX 是在x置位时Rs循环移动16位. 否则, RsX=Rs.  
{IA|IB|DA|DB}分别指:传送后地址增加, 传送前地址增加, 传送后地址减少, 传送前地址减少4个字节。{!}若 ! 存在 (预先变址),则数据传送后更新基址寄存器(Rn)。  
 IB DAThumb状态下是不可用的. 如未指定,默认使用IA.{S}若S存在更新标志位 
<size>B , SB, H, or SH, 分别指:字节, 带符号位的字节, 半字, 带符号位的半字。{T}若T存在给用户模式特权 
 SB 和 SH在STR 指令中不可用。{R}若R存在恢复最近的结果,否则丢弃结果。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值