数据定义伪操作之五

来源:本站
导读:目前正在解读《数据定义伪操作之五》的相关信息,《数据定义伪操作之五》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《数据定义伪操作之五》的详细说明。
简介: 本文章是关于数据定义伪操作之五。

(10)DCI

在ARM代码中,DCI用于分配一段字对齐的内存单元,并用伪操作中的expr将其初始化;在Thumb代码中,DCI用于分配一段半字对齐的半字内存单元,并用伪操作中的expr将其初始化。

语法格式

{lable} DCIexpr{,expr}…

其中:{lable}为可选的标号;expr可以为数字表达式。

使用说明

DCI伪操作和DCD伪操作非常类似,不同之处在于,DCI分配的内存中数据被标识为指令,可用于通过宏指令来定义处理器指令系统不支持的指令。

在ARM代码中,DCI为了保证分配是字对齐的,可能在分配的第一个内存单元前插入最多3字节的填补字节。在Thumb代码中,DCI为了保证分配的内存时半字对齐的,可能在分配的第一个内存单元前插入1字节的填补字节。

示例21 用DCI伪操作分配内存单元举例

MACRO ;宏指令

Newinstr $Rd,$Rm

DCI 0xE16F0F10:OR($Rd:SHL:12):OR:$Rm ;这里存放的是指令

MEND

(11)DCQ及DCQU

DCQ用于分配一段以双字(8字节)为单位的内存,分配的内存要求必须字对齐,并用伪操作中的64位的整数数据初始化。DCQU与DCQ的不同之处在于,DCDQ分配的内存单元并不严格字对齐。

语法格式

{lable} DCQ{U}{—}literal{,{—}literal }…

其中:{lable}是一个标号,是可选的,literal为64位的数字表达式,可选正负号,其取值范围为0~2的64次幂减1.当在literal前加上“—”时,literal的取值范围为—2的63次幂减1~—1.在内存中,2的64次幂减n与—n具有相同的表达形式,这是因为数据在内存中都是以补码的形式表示的,

使用说明

DCQ伪操作为了保证分配的内存是字对齐的,可能在分配的第一个内存单元前插入多达3字节的填补字节。DCQU分配飞内存单元则不需要字对齐。

示例22 用DCQ、DCQU伪操作分配内存单元举例

AREA MiscData,DATA,READWRITE ;定义数据段,属性为可读/写

Data0 DCQ—100,2_101 ;2_101指的是二进制的101

Data1 DCQU1000,—100000000

DCQU number+4 ;number必须是已定义过的数字表达式

(1) DCW及DCWU

DCW用于分配一段半字的半字内存单元,并用伪操作中的expr初始化。DCWU与DCW的不同之处在于,DCWU分配的内存单元并不严格半字对齐。

语法格式

{lable} DCW{U}expr(,expr)…

其中:{lable}为可选的标号;expr为数字表达式,其取值范围为—32768~65535.

使用说明

DCW伪操作为了保证分配的内存是半字对齐的,可能在分配的第一个内存单元前插入1字节的填补字节。DCWU分配的内存单元则不需要半字对齐。

示例23 用DCW伪操作分配内存单元举例。

Data DCW —235,748,2246

DCW num+8

提醒:《数据定义伪操作之五》最后刷新时间 2024-03-14 00:55:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《数据定义伪操作之五》该内容的真实性请自行鉴别。