ARM匯編指令編程

ARM匯編指令編程之寄存器中數(shù)據(jù)調(diào)換順序


題目:將R0中的數(shù)據(jù)調(diào)換順序;例如:R0=0XAABBCCDD調(diào)換順序后為R0=0XDDCCBBAA


實驗環(huán)境:ARM?Developer Suite V1.2

代碼:

? ? ? ? AREA test,CODE,READONLY

? ? ? ? ENTRY

? ? ? ? CODE32

START

? ? ? ? LDR R0,=0XAABBCCDD

? ? ? ? MOV R1,R0,LSR #28

? ? ? ? MOV R2,R0,LSR #24

? ? ? ? MOV R2,R2,LSL #28

? ? ? ? MOV R2,R2,LSR #24

? ? ? ? MOV R3,R0,LSR #20

? ? ? ? MOV R3,R3,LSL #28

? ? ? ? MOV R3,R3,LSR #20

? ? ? ? MOV R4,R0,LSR #16

? ? ? ? MOV R4,R4,LSL #28

? ? ? ? MOV R4,R4,LSR #16

? ? ? ? MOV R5,R0,LSR #12

? ? ? ? MOV R5,R5,LSL #28

? ? ? ? MOV R5,R5,LSR #12

? ? ? ? MOV R6,R0,LSR #8

? ? ? ? MOV R6,R6,LSL #28

? ? ? ? MOV R6,R6,LSR #8

? ? ? ? MOV R7,R0,LSR #4

? ? ? ? MOV R7,R7,LSL #28

? ? ? ? MOV R7,R7,LSR #4

? ? ? ? MOV R8,R0,LSL #28

? ? ? ? MOV R0,#0

? ? ? ? ADD R0,R0,R1

? ? ? ? ADD R0,R0,R2

? ? ? ? ADD R0,R0,R3

? ? ? ? ADD R0,R0,R4

? ? ? ? ADD R0,R0,R5

? ? ? ? ADD R0,R0,R6

? ? ? ? ADD R0,R0,R7

? ? ? ? ADD R0,R0,R8

STOP

? ? ? ? B STOP

? ? ? ? END


思路:把每個數(shù)字都放在鏡像的位置,將其左右通過邏輯左右移移空,并放入獨立的寄存器,最后將幾個寄存器的值相加即可。


結(jié)果截屏:

此文章本人原創(chuàng),如有問題底部留言,如有轉(zhuǎn)載請標(biāo)明出處。

--HurryChen


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Happy ? Coding!

? ??????????????????????????????????????????????????????????????????*\( ^ v ^ )/*

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容