2.1 题目描述
请编写一个ARM数据块拷贝汇编语言程序,将内存中的源数据块的内容拷贝到目标地址。假设r0已经存放了源数据的首地址(自定),r1存放了目标数据地址(自定),r2存放了数据块的总长度100(数据的个数,每个数据都是32位的,即4个字节)。
2.2 设计思路
用3个寄存器实现数据块的拷贝,利用LDMIA指令实现从源地址中取数据,利用STMIA指令实现往目标地址中写数据,利用循环操作实现多个数据的拷贝。
2.3 实现代码
1. 首先给寄存器R0、R1和R2赋初始值(寄存器R0存放源数据首地址,R1存放目标数据地址,R2存放数据的总长度即要拷贝数据的个数)。
MOV R0,#0x70000000 ;R0源数据的首地址
MOV R1,#0x10000000