嵌入式第4章讲述.ppt

4.2.6 装入和存储多个寄存器指令 ⒈ 用LDR和STR指令作块拷贝 例4.10是一段ARM代码程序,能够从数据块的源地址拷贝一组字到目的地址处,每次只拷贝一个字。 【例4.10】用LDR和STR指令作块拷贝。 (见参考书) * ⒉ 用LDM和STM指令作块拷贝 对于例4.10中的块拷贝代码,如果改成使用LDM和STM指令,效率会更高。假定一次传送8个字,在一个被拷贝的块中8个字的倍数可以这样去寻找(假如r2=被拷贝的字数): MOVS r3,r2,LSR #3 指令执行后,r3中是8个字的倍数,如果执行前r2=20,执行后r3=2。使用r3中的值,可以作为循环的控制次数,在循环中每次拷贝8个字。 如果被拷贝的字数小于8,或虽然大于8但不是8的整倍数,余下的字可以这样寻找(假如r2=被拷贝的字数,r2的内容允许被破坏): ANDS r2,r2,#7 假定指令执行前r2=20,执行后r2=4。 * 例4.11列出了重写的块拷贝模块,使用了LDM和STM指令。 【例4.11】用LDM和STM指令作块拷贝。 (见参考书) * 4.2.7 多路分支 以下代码根据R0中保存的不同的分支索引值,分支到不同的函数。各函数入口地址分别为Handler0,Handler1,…。 【例4.12】多路分支 (见参考书P143) * E

文档评论(0)

1亿VIP精品文档

相关文档