ARM7 指令集

特此声明
本文不是作者原著,只是做的读书笔记

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寄存器

3. 寄存器移位寻址

你可能感兴趣的:(ARM7 指令集)