新聞中心

ARM·指令集

作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
(馮諾依曼結構就是程序存儲指令存儲器和數(shù)據(jù)存儲器結合在一起的結構)
(RISC和CISC相對,reduced 和 complex)
1)單寄存器加載


LDR/STR指令用于對內存變量的訪問、內存緩沖區(qū)數(shù)據(jù)的訪問、查表、外表部件的控制操作等。
若使用LDR指令加載數(shù)據(jù)到PC寄存器,則實現(xiàn)程序跳轉功能 。
*LDR和STR——字和無符號字節(jié)加載/存儲指令
LDR/STR指令尋址非常靈活,它由兩部分組成,其中一部分為一個基址寄存器,可以為人一個通過寄存器;另一個部分為地址偏移寄存器。
①立即數(shù) LDR R1, [R0,#12] R1<-[R0+0x12]
②寄存器 LDR R1, [R0, R2] R1<-[R0+R2]
③寄存器及移位常數(shù) LDR R1, [R0,R2,LSL#2]; R1<-[R0+R2*4]
*LDR/STR——半字和有符號字節(jié)加載/存儲指令

2)批量數(shù)據(jù)加載/存儲指令

*cond:執(zhí)行的條件
*模式:控制地址的增長方式,一共8種模式
*?。罕硎驹诓僮鹘Y束后,將最后的地址寫回Rn中
reglist:表示寄存器列表,可以包含多個寄存器{R1,R2,R4-R9}
^:允許在用戶模式或系統(tǒng)模式下使用

例子。

【堆棧操作】
*堆棧指針(SP)總是指向棧頂
遞增堆棧:向高地址方向生長
遞減堆棧:向低地址方向生長
滿堆棧:堆棧指針向最后壓入堆棧的有效數(shù)據(jù)項
空堆棧:堆棧指針指針向下一個要放入數(shù)據(jù)的空位置

【關于最后的疑問:LDR/STR LDM/STM為什么加載的方式相反,是不是這課寫錯了】
【數(shù)據(jù)交換指令】

【異常產(chǎn)生指令】

SWI 0 調用0中斷
SWI 12 調用12中斷
上一頁 1 2 下一頁

關鍵詞: ARM指令

評論


技術專區(qū)

關閉