嵌入式处理器-2.4

来源:互联网 发布:小米文件管理器源码 编辑:程序博客网 时间:2024/05/17 23:58

目标:了解ARM指令集的指令类型及指令格式,掌握移位操作实现数据变换以及简单乘除操作的方法,熟悉寻址方式,掌握ARM指令集中的常用指令。
1.ARM指令集中的指令类型以及指令格式
(1)ARM指令分类
六大类:分支指令,数据处理指令,程序状态寄存器处理指令,加载/存储指令,协处理指令和异常处理指令。
具体参考P69。
(2)ARM指令格式
{}{S} ,{,}
其中<>为不可省,{}为可省略,opcode,cond与S之间没有分隔符,{S}与Rd之间用空格隔开。
指令的操作码
目的寄存器
第一个源操作数
当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件地执行。
(3)ARM指令中操作数符号
①“#”立即数符号,其后是十进制数或十六进制数。
②“0x”十六进制符号,其后是十进制数或十六进制数。
③“!”更新基址寄存器符号,
表示指令在完成操作后最后的地址应该写入基址寄存器中。
④“^”复制SPSR到CPSR符号,
当前面的寄存器不包含PC时,表示所用寄存器是用户模式的寄存器;
当前面的寄存器包含PC时,表示将SPSR寄存器的值复制到CPSR寄存器中。
⑤“-”指示寄存器列表范围符号,表示多个连续寄存器。
2.ARM指令中的移位操作符
移位操作包括六大类:LSL(逻辑左移),ASL(算术左移),LSR(逻辑右移),ASR(算术右移),ROR(循环右移),RRX(带扩展的循环右移)。
移位操作格式:Rm,#
Rm为要移位的通用寄存器
为移位操作符
为移位次数
3.ARM指令的寻址方式
(1)立即寻址
(2)寄存器寻址
(3)寄存器间接寻址
(4)基址加变址寻址
(5)相对寻址
(6)堆栈寻址
(7)块拷贝寻址
4.ARM指令集中常用指令
参考书上。

原创粉丝点击