我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 源程序 >

ARM汇编语言源程序格式

归档日期:06-06       文本归类:源程序      文章编辑:爱尚语录

  当一个Semihosting软中断被执行时,调试系统先识别这个SWI请求,然后挂起正在运行的程序,调用Semihosting的服务,完成后再恢复原来的程序执行。

  在此例中,表格jumptable中存放地是子程序地入口地址,我们把这种表格称为跳转表格。

  注意指令LDR PC,[R3,R0,LSL #2],执行地操作为PC=R3+R0×4,因为表格中存放地地址为4字节地址,所以要将R0乘以4得出偏移量,再加上表格首地址,得出子程序地入口地址赋值给PC。

  两个数据串都放在数据段中,且用DCB伪指令定义,DCB为定义1字节或多字节内存空间,双引号中的字符串在内存中是顺序存放的,因此取数/存数时需要使用LDRB和STRB指令;

  另外,例子中采用的LDRB/STRB 指令是后索引寻址方式,即寻址完成后更新地址。

  数据串拷贝时,若使用LDM和STM则可增加程序的效率。考虑到ARM的寄存器,一次采用8个寄存器进行传输比较合适,

  通过指令: MOVS r3,r2, LSR #3 来计算需要几轮8位数据传送,剩余的数据个数可以通过指令ANDS r2, r2, #7 获得,再对其进行按字传输即可。

本文链接:http://dropped-call.com/yuanchengxu/17.html