ARM·指令集
(馮諾依曼結(jié)構(gòu)就是程序存儲(chǔ)指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器結(jié)合在一起的結(jié)構(gòu))
(RISC和CISC相對(duì),reduced 和 complex)
1)單寄存器加載
LDR/STR指令用于對(duì)內(nèi)存變量的訪問(wèn)、內(nèi)存緩沖區(qū)數(shù)據(jù)的訪問(wèn)、查表、外表部件的控制操作等。
若使用LDR指令加載數(shù)據(jù)到PC寄存器,則實(shí)現(xiàn)程序跳轉(zhuǎn)功能 。
*LDR和STR——字和無(wú)符號(hào)字節(jié)加載/存儲(chǔ)指令
LDR/STR指令尋址非常靈活,它由兩部分組成,其中一部分為一個(gè)基址寄存器,可以為人一個(gè)通過(guò)寄存器;另一個(gè)部分為地址偏移寄存器。
①立即數(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——半字和有符號(hào)字節(jié)加載/存儲(chǔ)指令
2)批量數(shù)據(jù)加載/存儲(chǔ)指令
*cond:執(zhí)行的條件
*模式:控制地址的增長(zhǎng)方式,一共8種模式
*!:表示在操作結(jié)束后,將最后的地址寫回Rn中
reglist:表示寄存器列表,可以包含多個(gè)寄存器{R1,R2,R4-R9}
^:允許在用戶模式或系統(tǒng)模式下使用
例子。
【堆棧操作】
*堆棧指針(SP)總是指向棧頂
遞增堆棧:向高地址方向生長(zhǎng)
遞減堆棧:向低地址方向生長(zhǎng)
滿堆棧:堆棧指針向最后壓入堆棧的有效數(shù)據(jù)項(xiàng)
空堆棧:堆棧指針指針向下一個(gè)要放入數(shù)據(jù)的空位置
【關(guān)于最后的疑問(wèn):LDR/STR LDM/STM為什么加載的方式相反,是不是這課寫錯(cuò)了】
【數(shù)據(jù)交換指令】
【異常產(chǎn)生指令】
SWI 0 調(diào)用0中斷
關(guān)鍵詞:
ARM指令
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論