编写一下汇编程序,关于arm的

使用寄存器操作从外部存储器地址0x4000 3000处开始依次存放48个字数据(数值为0,1,2,3…47),之后将保存的数据复制至地址0x4000 4000处


ORG 0x0000

START:
    MOV R0, #0              ; 初始化计数器为 0
    LDR R1, =0x40003000     ; 获取起始地址
LOOP:
    STRH R0, [R1], #2       ; 存储数据,每次存储两个字节
    ADD R0, R0, #1          ; 计数器加一
    CMP R0, #48             ; 检查是否达到存储数据的总量
    BNE LOOP                ; 若没有,则跳转到 LOOP 标签处

    LDR R1, =0x40004000     ; 获取目标地址
    LDR R2, =0x40003000     ; 获取源地址
    MOV R3, #0              ; 初始化计数器为 0
COPY:
    LDRH R4, [R2], #2       ; 读取两个字节的数据
    STRH R4, [R1], #2       ; 存储两个字节的数据
    ADD R3, R3, #1          ; 计数器加一
    CMP R3, #48             ; 检查是否达到复制数据的总量
    BNE COPY                ; 若没有,则跳转到 COPY 标签处

    END                     ; 程序结束