用ARM汇编实现R0寄存器中数据调换数据

本题本人的思路很简单,就是通过以为操作来实现,注意此时不要使用循环移位,用算数移位和逻辑移位即可,每次移位保存其中一个16进制数,知道每个数都保存,然后再将这些数据反序存储到R0寄存器中。

ARM代码:

AREA HOMEWORK4,CODE,READONLY 
    ENTRY 
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 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9a284e65cbc9e3a178f412ba4aa522d2.html