| |
/*----------------------------------------------------
* 寄存器使用说明:
* R0:64位数据的低32位
* R1:64位数据的高32位
*----------------------------------------------------*/
.global
_start
.text
.arm
_start:
B Main
Reverse: @子函数实现单个字内的高低位互换
MOV R3,#0
MOV R5,#0X80000000
MOV R6,#32
Rever_1:
MOVS R4,R4,rrx
EORCS R3,R3,R5
MOV R5,R5,LSR #1
SUBS R6,R6,#1
BNE
Rever_1
MOV R4,R3
BX
R7
Main:
MOV R0,#0xFF000000
MOV R1,#0xFF000000
#实现R0与R1互换
MOV R2,R0
MOV R0,R1
MOV R1,R2
#实现R0内部的高低位互换
MOV R4,R0 @参数传递
LDR R7,=Loop_1 @保存返回地址
B
Reverse
Loop_1:
MOV R0,R4 @结果回写
#实现R1内部的高低位互换
MOV R4,R1
LDR R7,=Loop_2
B
Reverse
Loop_2:
MOV R1,R4
Stop:
B Stop
.end @文件结束