特此聲明 |
---|
本文不是作者原著,只是做的讀書筆記 |
ARM指令長度概述
32 bits 長 (ARM狀態(tài)下) 16 bits 長 (Thumb狀態(tài))
ARM7TDMI 支持3種數(shù)據(jù)類型 : 字節(jié)(8-bit) 漾肮、半字 (16-bit)蛮艰、字(32-bit) , 字必須被排成4個(gè)字節(jié)邊界對(duì)齊, 半字必須被排列成2個(gè)字節(jié)邊界對(duì)齊
向后兼容 : 新版本增加指令, 并保持指令向后兼容;
Load-store結(jié)構(gòu) : load/store 從存儲(chǔ)器中讀取某個(gè)值, 操作完后再將其放回存儲(chǔ)器中; 只對(duì)存放在寄存器的數(shù)據(jù)進(jìn)行處理; 對(duì)于存儲(chǔ)器中的數(shù)據(jù), 只能使用load/store指令進(jìn)行存取;
簡介
具有32位ARM指令集和16位Thumb指令集, ARM指令集效率高, 代碼密度低, Thumb指令集有較高的代碼密度;
一. ARM處理器尋址方式
1. 寄存器尋址
如 :
MOV R1, R2 //將R2的值存入R1中;
R1叫:寄存器編號(hào), R1所在位置叫: 地址碼字段
2. 立即尋址
立即尋址指令中: 操作碼
字段后面的地址碼部分既是操作數(shù)本身
, 也就是說, 數(shù)據(jù)就是包含在指令當(dāng)中, 取出指令也就取出了可以立即使用的操作數(shù)(立即數(shù)
)
如:
SUBS R0,R0,#1; //R0減1, 結(jié)果放入R0, 并且影響
標(biāo)志位 what?(暫時(shí)不理解, 有個(gè)單獨(dú)的寄存器標(biāo)記進(jìn)位,溢出)
MOV R0,#0xFF000; //將立即數(shù)0xFF000裝入R0寄存器