ARM ® and Thumb ®-2 指令系统
2015-05-29 17:01
281 查看
指令表关键词 | ||||
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和 DA在Thumb状态下是不可用的. 如未指定,默认使用IA. | {S} | 若S存在更新标志位 | ||
<size> | B , SB, H, or SH, 分别指:字节, 带符号位的字节, 半字, 带符号位的半字。 | {T} | 若T存在给用户模式特权 | |
SB 和 SH在STR 指令中不可用。 | {R} | 若R存在恢复最近的结果,否则丢弃结果。 |
相关文章推荐
- 从零配置hibernate
- php bom \ufeff
- onclick弹出新窗口
- Swift开发教程--实现UITableView报错does not conform to protocol 'UITableViewDataSource‘
- Android中创建文件夹和文件的操作
- Oracle学习(2):过滤和排序
- FND Debug Log(FND_LOG_MESSAGES)
- 第十二周 项目三 日期时间类
- DeJaVu update history
- 【转】 Git 常用命令详解(二)----不错
- 我是怎么理解编程的?
- .net 过滤特殊字符
- iframe自适高度宽度,多版本浏览器兼容
- 关于proplists:get_value/2 与lists:keyfind/3 的效率比较
- UED大全
- android 单线程模型理解
- openstack 之 虚拟机管理利器virt-manager 的安装
- Js实现类似Excel工作表用方向键切换输入框焦点
- KVM ioctl API
- 最长回文子串_1528