| |
/*----------------------------------------------------
* 寄存器使用说明:
* 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                                    @文件结束
 /1
 /1 