ARM ® and Thumb ®-2 指令系统

指令表关键词       
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,y B 指寄存器低位 [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存在恢复最近的结果,否则丢弃结果。  
posted @   IAmAProgrammer  阅读(484)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示