第3章 ARM嵌入式处理器指令系统
ARM指令分类及指令格式
ARM指令的寻址方式
ARM指令集
Thumb指令集
1
本章以流行ARM处理器为例介绍嵌入式微处理器的指令系统,包括 ARM处理器的指令格式分类、指令格式、寻址方式、32位的ARM指令集和16位的Thumb指令集。
ARM指令分类及指令格式
2
ARM指令分类
3
4
5
6
7
1. 立即数符号"#"
“#”符号表示立即数,该符号后的数据可以是二进制数,也可以是十进制数或十六进制数,如果操作数为十进制数,则前面除了#外,没有其他符号。
2. 二进制符号"%"
"%"符号后面的数字表示二进制数,如%10010101表示二进制数10010101,即十进制数149。
3. 二进制符号"2_"
"2_"符号是二进制前缀的另一种形式,如2_10010101也表示二进制数10010101,与%10010101等效。
ARM指令中的操作数符号
8
4. 十六进制符号"0x"
"0x"后面的数据表示十六进制数,如0xFFFF,表示十六进制数FFFF,即十进制数65535。
5. 更新基址寄存器符号"!"
"!"符号表示指令在完成操作后应将最后的地址写入基址寄存器。
6. 复制SPSR到CPSR符号“^”
“^”符号通常在批量数据存储指令中作为后缀放在寄存器之后。当其前面的寄存器不包含PC时,该符号表示所用的寄存器是用户模式的寄存器;当其前面的寄存器包含PC时该符号指示将SPSR寄存器的值复制到CPSR寄存器中。
7. 指示寄存器列表范围符号“-”
"-"符号用于在有些指令中表示多个连续寄存器,即含义"从…到…"。如RO-R7表示,R1,R2,R3,R4,R5,R6,R7这8个寄存器。
9
ARM微处理器内嵌的桶型移位器(Barrel Shifter),支持数据的各种移位操作,但在 ARM指令集中没有单独的指令供移位操作使用。移位操作在汇编语言中表示为指令中的选项,只能作为指令格式中的一个字段。如当数据处理指令的第2个操作数为寄存器时,就可以加入移位操作选项对它进行各种移位操作。
移位操作包括逻辑左移(LSL)、算术左移(ASL)、逻辑右移(LSR)、算术右移(ASR)、循环右移(ROR)及带扩展的循环右移(RRX)共6种类型。
ARM指令中的移位操作
10
第3章 ARM嵌入式处理器指令系统谭会生 来自淘豆网www.taodocs.com转载请标明出处.