<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > ARM 匯編&ARM 指令集

ARM 匯編&ARM 指令集

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏
ARM 處理器尋址方式

1、寄存器尋址

本文引用地址:http://dyxdggzs.com/article/201611/321412.htm

操作數的值在寄存器中,指令中的地址碼字段指出的是寄存器編號,指令執行時(shí)直接取出寄存器值操作

MOV R1,R2 ;R2 -> R1
SUB R0,R1,R2 ;R1 - R2 -> R0

2、立即尋址

地址碼部分就是操作數,(操作數)立即數就在指令中

SUBS R0,R0,#1 ;R0 – 1 -> R0
MOV R0,#0xff00 ;0xff00 -> R0

3、寄存器偏移尋址

MOV R0,R2,LSL #3 ;R2 的值左移3 位,結果放入R0,即R0 = R2 * 8
ANDS R1,R1,R2,LSL R3 ;R2 的值左移R3 位,然后和R1 相與操作,結果放入R1

4、寄存器間接尋址

寄存器為操作數的地址指針

LDR R1,[R2] ;將R2 中的數值作為地址,取出此地址中的數據保存在R1 中
SWP R1,R1,[R2];將如中的數值作為地址,取出此地址中的數值與R1 中的值交換

5、基址尋址

將基址寄存器的內容與偏移量相加,形成操作數的有效地址,用于訪(fǎng)問(wèn)寄存器附近存儲單元

LDR R2,[R3,#0x0F] ;將R3 中的數值加0x0F 作為地址,取出此地址的數值保存在R2 中
STR R1,[R0,#-2] ;將R0 中的數值減2 作為地址,把R1 中的內容保存到此地址位置

6、多寄存器尋址

多寄存器尋址就是一次可以傳送幾個(gè)寄存器值,允許一條指令傳送 16 個(gè)寄存器的任何子集或所有寄存器。

LDMIA R1!,{R2-R7,R12} ;將R1 單元中的數據讀出到R2-R7,R12,R1 自動(dòng)加1
STMIA R0!,{R3-R6,R10};將R3-R6,R10 中的數據保存到R0 指向的地址,R0 自動(dòng)加1

7、堆棧尋址

堆棧是特定順序進(jìn)行存取的存儲區,操作順序分為“后進(jìn)先出”和“先進(jìn)后出”,
堆棧尋址時(shí)隱含的,它使用一個(gè)專(zhuān)門(mén)的寄存器(堆棧指針)指向一塊存儲區域(堆棧),
指針所指向的存儲單元就是堆棧的棧頂。存儲器堆??煞譃閮煞N:
向上生長(cháng):向高地址方向生長(cháng),稱(chēng)為遞增堆棧
向下生長(cháng):向低地址方向生長(cháng),稱(chēng)為遞減堆棧
堆棧指針指向最后壓入的堆棧的有效數據項,稱(chēng)為滿(mǎn)堆棧;堆棧指針指向下一個(gè)要
放入的空位置,稱(chēng)為空堆棧。這樣就有4 中類(lèi)型的堆棧表示遞增和遞減的滿(mǎn)堆棧和空堆
棧的各種組合。
滿(mǎn)遞增:堆棧通過(guò)增大存儲器的地址向上增長(cháng),堆棧指針指向內含有效數據項的
最高地址。指令如LDMFA,STMFA 等。
空遞增:堆棧通過(guò)增大存儲器的地址向上增長(cháng),堆棧指針指向堆棧上的第一個(gè)空
位置。指令如LDMEA,STMEA 等。



關(guān)鍵詞: ARM匯編指令

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>