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. 寄存器移位尋址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容