特此声明 |
---|
本文不是作者原著,只是做的读书笔记 |
ARM指令长度概述
32 bits 长 (ARM状态下) 16 bits 长 (Thumb状态)
ARM7TDMI 支持3种数据类型 : 字节(8-bit) 、半字 (16-bit)、字(32-bit) , 字必须被排成4个字节边界对齐, 半字必须被排列成2个字节边界对齐
向后兼容 : 新版本增加指令, 并保持指令向后兼容;
Load-store结构 : load/store 从存储器中读取某个值, 操作完后再将其放回存储器中; 只对存放在寄存器的数据进行处理; 对于存储器中的数据, 只能使用load/store指令进行存取;
简介
具有32位ARM指令集和16位Thumb指令集, ARM指令集效率高, 代码密度低, Thumb指令集有较高的代码密度;
一. ARM处理器寻址方式
1. 寄存器寻址
如 :
MOV R1, R2 //将R2的值存入R1中;
R1叫:寄存器编号, R1所在位置叫: 地址码字段
2. 立即寻址
立即寻址指令中: 操作码
字段后面的地址码部分既是操作数本身
, 也就是说, 数据就是包含在指令当中, 取出指令也就取出了可以立即使用的操作数(立即数
)
如:
SUBS R0,R0,#1; //R0减1, 结果放入R0, 并且影响
标志位 what?(暂时不理解, 有个单独的寄存器标记进位,溢出)
MOV R0,#0xFF000; //将立即数0xFF000装入R0寄存器