ARM汇编常用伪操作总结
时间:11-29
来源:互联网
点击:
KB 地址范围的数据域
示例 2 :
下面的伪操作序列定义一个内存表,其首地址为 0 ,该内存表中包括 5 个数据域: consta 长度为 4 个字节; constb 长度为 4 个字节; x 长度为 8 个字节; y 长度为 8 个字节; string 长度为 256 个字节。这种内存表称为基于相对地址的内存表。
MAP 4096 ;内存表的首地址为 0
consta FIELD 4 ; consta 长度为 4 个字节,相对位置为 0
constb FIELD 4 ; constb 长度为 4 个字节,相对位置为 4
x FIELD 8 ; x 长度为 4 个字节,相对位置为 8
y FIELD 8 ; y 长度为 4 个字节,相对位置为 16
string FIELD 256 ; string 长度为 256 字节,相对位置为 24
; 可以通过下面的指令方便地访问地址范围超过 4KB 的数据
MOV R9 , #4096
LDR R5 , [R9,constb] ;将内存表中数据域 constb 读取到 R5 中
在这里,内存表中各数据域的实际内存地址不是基于一个固定地址,而是基于 LDR 指令执行时 R9 寄存器中的内容。这样通过上面方法定义的内存表结构可以在程序中有多个实例(通过在 LDR 指令中指定不同的基址寄存器值来实现)。通常用 R9 作为静态基址寄存器。
ARM 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)
