<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>

新聞中心

ARM的BX指令

作者: 時(shí)間:2016-11-10 來(lái)源:網(wǎng)絡(luò ) 收藏
bx的語(yǔ)法格式
BX{} <Rm>
<cond>為指令執行的條件碼。當<cond>忽略時(shí)指令為無(wú)條件執行。
<Rm>該寄存器中為跳轉的目標地址。當寄存器的bit[0]為0時(shí),目標地址處的指令為ARM指令;
寄存器的bit[0]為1時(shí),目標地址處的指令為T(mén)humb指令。

看一段簡(jiǎn)單程序的片段,不用考慮省略號的內容,看框架就可以了!

EXPORT LEDTEST
AREA testasm,CODE,READONLY
CODE32
LEDTEST
。。。。。。。。。。
。。。。。。。。。
。。。。。。。。
。。。。。。。。。
。。。。。。。。。。。
ledon
...............
...............
。。。。。。。。。。。。
。。。。。。。。。。。
adr r4,delay1+1
bx r4

ledoff
..............
...............
.............
.............
.............
..............

AREA testasm,CODE,READONLY
CODE16
delay1
............
...........
.............
ldr r1,=ledoff
bx r1
........
.............
.............
END

關(guān)于delay1+1:
ARM指令是字對齊(指令的地址后兩位為[1:0]=0b00),Thumb是半字對齊(指令的地址后兩位為[1:0]=0bx0,x為0或1)。指令的地址的最后一位必為0。
因此bx(不管往ARM還是往Thumb跳轉)的跳轉指令必須保證指令地址的最后一位為0,上例中bx指令能自
動(dòng)地將目標地址值置為r4的值和0xFFFFFFFE的與后的結果,就會(huì )使指令地址的最后一位必為0了。
那么delay+1的這個(gè)1不就被0與掉了么,就沒(méi)有什么作用了?其實(shí),在執行bx指令時(shí),它是首先判
斷指令地址的后一位為0或1(這樣就知道要跳轉的地方是ARM還是Thumb指令。0跳轉arm,1跳轉thumb。),然后再PC=r4 AND 0xFFFFFFFE。這樣,當我們需要要跳轉到Thumb指令處執行時(shí),必須將指令地址的最后以為置1。

而bx再跳轉到ARM指令時(shí)就無(wú)需考慮這些了,就不用像上面的+1處理了。

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


關(guān)鍵詞: ARMBX指

評論


技術(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>