ARM汇编语言源程序格式

合集下载

4 ARM汇编语言程序设计

4 ARM汇编语言程序设计

伪操作
CODE16 CODE32 EQU AREA ENTRY END ALIGN
EXPORT/ GLOBAL
语法格式
CODE16
作用
告诉汇编编译器后面的指令序列为16位的Thumb指令 告诉汇编编译器后面的指令序列为32位的ARM指令。
为数字常量、基于寄存器的值和程序中的标号(基于PC的值)定义一个字符名称,类 似于C语言中的#define宏定义。
符号定义伪操作
给变量赋值——SETA、SETL及SETS
SETA、SETL及SETS伪操作用于给一个ARM程
序 中的变量赋值。 语法格式:
赋予变量的 值
variable SETA/SETL/SETS expr
应用实例: GBLA objectsize ;声明一个全局的算术变量 objectsize SETA 0xff ;为该变量赋值 注意:
ARM汇编语言程序设计
主讲人:刘燕
ARM汇编语言程序设计
ARM伪操作 ARM伪指令
ARM汇编语言语句格式
ARM汇编语言程序格式
ARM程序设计举例
ARM汇编语言程序设计
ARM汇编语言源程序中的语句由指令、伪 操作和宏指令组成。 伪操作不像机器指令那样在计算机运行 期间由机器执行,它是在汇编程序对源程序 汇编期间由汇编程序处理的。 宏是一段独立的程序代码,在程序中通 过宏指令调用该宏。当程序被汇编时,汇编 程序将对每个宏调用作展开,用宏定义体取 代源程序中的宏指令。
GBLA/GBLL/GBLS variable
符号定义伪操作
声明全局变量——GBLA、GBLL及GBLS
语法格式:
GBLA/GBLL/GBLS ห้องสมุดไป่ตู้ariable

8ARM汇编语言程序指示符与语句格式.

8ARM汇编语言程序指示符与语句格式.
10
5.4.5.1 AREA

AREA指示符用于定义一个代码段或者数据段。

语法格式 AREA sectionname{,attr}{,attr}.... 其中: sectionname为所定义的代码段或者数据段的名称。 如果该名称是以数字开头的,则该名称必须用“|” 括起来,如|1_datasec|。还有一些代码段具有约 定的名称,如|.text|表示C语言编译器产生的代码 段或者是与C语言库相关的代码段。 Attr是该代码段(或者程序段)的属性。 在AREA指示符中,各属性间用逗号隔开。
11
2018/9/14
AREA的属性

下面列举主要的属性:

ALIGN=expression。默认的情况下,ELF的代码段 和数据段是4字节对齐的。

Expression可以取0~31的数值,相应的对齐 方式为(2expression)字节对齐。如expression=3 时为8字节对齐。



ASSOC=section。指定与本段相关的ELF段。任何 时候连接section段也必须包括sectionname段。 CODE 定义代码段。默认属性为READONLY。 COMDEF 定义一个通用的段。该段可以包含代码 或者数据。在个源文件中,同名的COMDEF段必 须相同。
15
2018/9/14
EQU(续)



type有下面3种取值: CODE16 CODE32 DATA 使用说明 EQU指示符的作用类似于C语言中的#define,用于 为一个常量定义字符名称。 示例 abcd EQU 2 ;定义abcd符号的值为2 abcd EQU label+16 ;定义abcd符号的值(label+16) addr1 EQU 0xlC, CODE32 ;定义addr1符号值为 ;绝对地址值0xlC,而且该处为ARM指令。

第4章ARM汇编语言程序设计

第4章ARM汇编语言程序设计

例 4.9
LCLA Test3 LCLL Test4
使用示例:
Test3 ;声明一个局部的数值变量,变量名为Test3 SETA 0xaa ;将该变量赋值为0xaa Test4 ;声明一个局部的逻辑变量,变量名为Test4 SETL {TRUE} ;将该变量赋值为真
4.2.2数据定义伪操作
DCB DCW(DCWU) DCD(DCDU) DCDO DCI DCQ(DCQU) DCFS(DCFSU) DCFD(DCFDU) SPACE FIELD MAP LTORG
1.AREA
格 式:AREA 段名 属性1,属性2,……
功 能:AREA伪操作用于定义一个代码段、 数据段或特定属性的段。 其中,段名若以数值开头,则该段名需用 “|”括起来,如|1_test|,用C的编译器产生 的代码一般也用“|”括起来。属性字段表示 该代码段(或数据段)的相关属性,多个 属性用逗号分隔。
4.1汇编语言程序格式
• • • • 4.1.1汇编语言的基本概念 4.1.2汇编语言源程序的组成 4.1.3汇编语言程序中常用的符号 4.1.4汇编语言程序中的表达式和运算符
4.1.1汇编语言的基本概念
4.1.2汇编语言源程序的组成
1.汇编语言源程序的结构
AREA Init,CODE,READONLY ENTRY Start LDR R0,=0x3FF5000 LDR R1,#0xFF STR R1,[R0] LDR R0,=0x3FF5008 LDR R1,#0x01 STRR1,[R0] … END
4.1.3汇编语言程序中常用的符号
在汇编语言程序设计中,经常使用各种符号表 示变量、常量和地址 符号由大小写字母、数字以及下划线组成。 符号区分大小写,同名的大、小写符号会被 编译器认为是两个不同的符号。 符号在其作用范围内必须唯一,即在其作用 范围内不可有同名的符号。 自定义的符号名不能与系统的保留字相同。 符号名不应与指令或伪指令同名。

汇编语言源程序格式

汇编语言源程序格式
汇编语言源程序格式
2.1 汇编语言语句格式
同其他程序设计语言一样,汇编语言的翻译器 (汇编程序)对源程序有严格的格式要求。这样, 汇编程序才能确切翻译源程序,形成功能等价的 机器指令(目标代码),连接后能直接运行。汇 编语言程序格式就是汇编语言必须遵循的语法规 则。
汇编语言语句类型
汇编语言源程序由语句序列构成,汇编语言程序中的语句可以分为 指令语句、伪指令语句和宏指令语句三种。 (1) 指令语句:对应于CPU指令系统中的一条机器指令,由 CPU执行,能完成一定操作功能,能够翻译成机器代码的语句。 (2) 伪指令语句:无对应的机器指令,不由CPU执行,只为汇编 程序在翻译汇编语言源程序时提供有关信息,并不翻译成机器代码 的语句。 (3) 宏指令语句:就是由若干条指令语句形成的语句,一条宏指 令语句的功能相当于若干条指令语句的功能,详见第5章。
汇编语言语句格式
汇编语言源程序中的每个语句可以由4项组成,格式如下: [名字:] 操作码 [操作数[,操作数]] [;注释] 其中,名字项是一个符号项。 操作码项是一个操作码的助记符,它可以是指令、伪指令或宏指令 名。 操作数项由一个或多个表达式组成,它提供为执行所要求的操作而 需要的信息。 注释项用来说明程序或语句的功能。“;”为识别注释项的开始。 带方括号的项是可选项,需要根据具体情况而定。 汇编语言源程序中的每条语句一般占一行,各项之间必须用空格或 制表符作为分隔符,操作数之间用逗号分隔。
【例2.3】AND AL,78H AND 0FH
等价于: AND AL,08H
【例2.4】设VALUE是字节型变量,分析下面这条语句执 行完AL寄存器的内容。
MOV AL,VALUE AND 01H
在汇编后,该语句的源操作数(VALUE AND 01H)可 能产生两个结果之一:当VALUE值的D0位为1时, VALUE和01与操作的结果为01H,则该语句变成MOV AL,01H;当VALUE值的D0位为0时,VALUE和01与操 作的结果为00H,则该语句变成MOV AL,00H。因此, 执行后AL寄存器的内容为01H或00H。

ARM汇编语言的语法知识

ARM汇编语言的语法知识
指令执行的条件码 加载的目标寄存器 地址表达式
地址表达式expr的取值范围: 当地址值不是字对齐时,其取值范围为-64K~64K; 当地址值是字对齐时,其取值范围为-256K~256K; 当地址值是16字节对齐时,其取值范围将更大; 该地址必须与ADRL伪指令在同一个代码段中 .
• ARM伪指令——大范围的地址读取
指令执行的条件码 加载的目标寄存器 地址表达式
地址表达式expr的取值范围: 当地址值不是字对齐时,其取值范围为-255~255字节; 当地址值是字对齐时,其取值范围为-1020~1020字节; 当地址值是16字节对齐时,其取值范围将更大; 该地址必须与ADR伪指令在同一个代码段中.
• ARM伪指令——中等范围的地址读取
;单元,并初始化为0
• ARM汇编语言伪指令----数据定义伪操作
MAP MAP用于定义一个结构化的内存表的首地址.此时,内存 表的位置计数器设置成该地址值.该伪操作可以用"^"代替.
MAP伪操作举例
LTORG伪操作通常放在无条件跳转指令之后,或者子程
序返回指令之后,这样处理器就不会错误地将数据池中的
数据当做指令来执行.
用LTORG伪指令定义数据缓冲池举例
Funel
;子程序
LDR R1, =0x8000;将0x8000加载到R1
MOV PC, LR
LTORG
;定义数据缓冲池,存放0x8000
Data SPACE 40 ;从当前位置开始分配40字节的内存
使用示例:
height DN width SN lower FN
6 ;将VFP双精度寄存器6名称定义为height 16 ;将VFP单精度寄存器16名称定义为width 6 ;将浮点寄存器6名称定义为lower

arm汇编语言格式

arm汇编语言格式

arm汇编语言格式
ARM汇编语言是一种底层的程序设计语言,用于编写针对ARM
架构的机器码指令。

ARM汇编语言的格式包括以下几个方面:
1. 注释,注释用于解释代码的作用和功能,以分号(;)开头。

注释对于代码的可读性和理解很重要。

2. 指令,指令是汇编语言的核心部分,用于执行特定的操作。

指令可以包含操作码(opcode)和操作数(operand)。

操作码指定
要执行的操作,操作数提供操作所需的数据。

3. 标号,标号用于标识代码的位置或跳转目标。

标号以英文字母、数字和下划线组成,以冒号(:)结尾。

4. 寄存器,ARM架构有一组通用寄存器,用于存储和处理数据。

寄存器以英文字母r开头,后跟一个数字,表示寄存器的编号。

例如,r0表示第一个通用寄存器,r1表示第二个通用寄存器,依此类推。

5. 操作数,操作数可以是立即数(immediate)、寄存器、内
存地址等。

立即数是直接出现在指令中的数值,寄存器是存储数据的容器,内存地址是存储器中数据的位置。

6. 伪指令,伪指令是用于辅助程序开发的指令,不会被转化为机器码。

伪指令以句点(.)开头,常用的伪指令有定义数据段、定义代码段、定义常量等。

7. 指令格式,ARM汇编语言的指令格式通常包括操作码、目的寄存器、源操作数和条件码。

具体的指令格式会根据不同的指令而有所不同。

总结起来,ARM汇编语言的格式包括注释、指令、标号、寄存器、操作数、伪指令和指令格式。

这些元素共同构成了ARM汇编语言的语法规则,通过合理的组合和使用,可以编写出有效的ARM汇编代码。

arm汇编指令格式

arm汇编指令格式

arm汇编指令格式ARM汇编指令格式ARM汇编语言是一种底层程序设计语言,用于直接操控ARM处理器的指令和寄存器。

ARM汇编指令格式是编写ARM汇编程序的基础,本文将一步一步详细解答与ARM汇编指令格式相关的问题。

第一部分:ARM汇编基础在深入理解ARM汇编指令格式之前,我们需要先了解一些基本概念。

ARM 处理器是英国公司ARM Holdings开发的一种低功耗、高性能的处理器体系架构,广泛应用于移动设备、嵌入式系统等领域。

ARM汇编语言是ARM 处理器的机器码的可读形式,用于编写底层程序。

在ARM汇编语言中,指令以二进制形式表示,通常以助记符的形式出现。

每条指令占用一个或多个字(通常一个字等于4个字节),按字节编址。

第二部分:指令格式详解ARM处理器的指令格式包括指令助记符、操作数和操作码等部分。

ARM 汇编指令格式的一般形式如下:[label:] mnemonic{cond}{S} Rd, Rn, Operand2其中,[label:]为可选项,表示标号,用于在程序中跳转或引用;mnemonic为指令的助记符,用于表示具体的操作;{cond}为可选项,表示条件代码,用于指定是否执行指令;{S}为可选项,表示是否更新条件代码;Rd表示目标操作数的寄存器;Rn表示源操作数的寄存器;Operand2为第二个操作数。

指令助记符(mnemonic)代表具体的指令功能,例如ADD表示加法、MOV表示数据传输等。

条件代码(cond)用于指定是否执行指令,常用的条件代码有EQ(等于)、NE(不等于)、GT(大于)等。

这样,我们可以根据需要选择是否在特定条件下执行指令。

更新条件代码(S)表示执行指令后是否更新条件代码寄存器。

如果设置了该标志位,则根据指令的结果设置条件代码寄存器。

目标操作数(Rd)是指令的结果存储的寄存器,源操作数(Rn)是参与指令计算的寄存器。

操作数(Operand2)是指令的第二个操作数,可以是立即数、寄存器的偏移值、寄存器的移位值等。

第二讲_ARM汇编语言程序设计

第二讲_ARM汇编语言程序设计

•在ARM汇编语言中,子程序调用是通过BL指令来完成的。 BL指令的语法格式如下: •BL subname •其中,subname是被调用的子程序的名称。
子程序的返回
在返回调用子程序时,转移链接指令保存到LR寄存器 (r14)中的值需要拷贝回程序寄存器PC(r15)。
跳转表思想
•在程序设计中,有时为使程序完成一定的 功能,需要调用一系列子程序中的一个,而 决定究竟调用哪一个由程序的计算值确定。 跳转表是解决该问题的有效方案。跳转表是 利用程序计数器PC在通用寄存器文件中的可 见性来实现的,如下例所示:
第二讲
ARM汇编语言程序设计
ARM汇编语言程序设计
ARM汇编中的文件格式 ARM汇编语言语句格式 ARM汇编语言程序格式 ARM汇编语言编程的重点 ARM汇编程序实例
一、ARM汇编中的文件格式
ARM 源程序文件(可简称为源文件)可以由任意一 种文本编辑器来编写程序代码,它一般为文本格式。在 ARM程序设计中,常用的源文件可简单分为以下几种:
• 这是ARM中典型的数据理指令,格式 如下所示:
ADD r0, r1, r2 ;r0 <= r1 + r2
立即数操作
• 在数据处理指令中,第二操作数除了 可以是寄存器,还可以是一个立即数,如 下所示: • ADD R3, r3,#1 ;r3 <= r3 + 1 • AND R8, r7,#0xff ;r8 <= r7[7:0] •需要特别注意的是:在32位指令编码中, 有效立即数是由一个8位的立即数循环右移 2n位得到。
• CODE32 • INTO_ARM • ADR R0,INTO_THUMB+1 • BX R0 • ….. • CODE16 • INTO_THUMB ……. • ADR R5,INTO_ARM • BX R5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM汇编语言源程序格式ARM汇编语言源程序格式2010-11-16 13:52来源:MCU嵌入式领域常用ARM源程序文件类型汇编语言程序的结构1汇编语言程序的结构2汇编语言程序的结构3汇编语言程序的结构4 ARM的汇编语言程序一般由几个段组成,每个段均由AREA伪操作定义。

段可以分为多种,如代码段、数据段、通用段,每个段又有不同的属性,如代码段的默认属性为READONLY,数据段的默认属性为READWRITE。

本程序定义了两个段,第一个段为代码段codesec,它在存储器中存放用于程序执行的代码以及main函数的本地字符串;第二个段为数据段constdatasec,存放了全局的字符串,由于本程序没有对数据进行写操作,该数据段定义属性为READONLY。

汇编语言的行构成1格式:[标签]指令/伪操作/伪指令操作数[;语句的注释]所有的标签必须在一行的开头顶格写,前面不能留空格,后面也不能跟C 语言中的标签一样加上":";ARM汇编器对标识符的大小写敏感,书写标号及指令时字母的大小写要一致;注释使用";"符号,注释的内容从";"开始到该行的结尾结束汇编语言的行构成2标签标签是一个符号,可以代表指令的地址、变量、数据的地址和常量。

一般以字母开头,由字母、数字、下划线组成。

当符号代表地址时又称标号,可以以数字开头,其作用范围为当前段或者在下一个ROUT伪操作之前。

指令/伪操作指令/伪操作是指令的助记符或者定义符,它告诉ARM的处理器应该执行什么样的操作或者告诉汇编程序伪指令语句的伪操作功能。

汇编语言的标号1标号代表地址。

标号分为段内标号和段外标号。

段内标号的地址值在汇编时确定,段外编号的地址值在链接时确定。

在程序段中,标号代表其所在位置与段首地址的偏移量。

根据程序计数器(PC)和偏移量计算地址即程序相对寻址。

在映像中定义的标号代表标号到映像首地址的偏移量。

映像的首地址通常被赋予一个寄存器,根据该寄存器值与偏移量计算地址即寄存器相对寻址。

例如:loop SUBS r0,r0,#1;每次循环使r0=r0-1 BNE loop;跳转到loop标号去执行汇编语言的标号2在宏中也可以使用局部符号。

局部标号是0~99的十进位数开始,可以重复定义。

局部标号引用格式:%{F|B}{A|T}N{routname}%:局部标号引用操作。

F:编译器只向前搜索。

B:编译器只向后搜索。

A:编译器搜索宏的所有嵌套层次。

T:编译器搜索宏的当前层。

例如:01 SUBS r0,r0,#1;每次循环使r0=r0-1 BNE%B01;跳转到01标号去执行汇编语言的常量常量:其值在程序运行过程中不能被改变的量。

(1)数字常量:数字常量有3种表示方式:十进制数,如1、2、123十六进制数,如0x123,0xabc n进制数,形式为n_XXX,n的范围是2到9,XXX是具体数字(2)字符常量:由单引号及中间的字符组成,包括C语言中的转义字符,如'a','\n'(3)字符串常量:由一对双引号及中间的字符串表示,中间也可以使用C语言中的转义字符,比如:"abcdef[message]xa\r\n"(4)逻辑常量:{TRUE},{FALSE},注意带大括号汇编程序的变量代换1这里所说的变量,是相对于汇编程序的"变量",是用于汇编程序进行处理的,但一旦编译到程序中,则不会改变,成为常量。

在字符串变量的前面有一个$字符,在汇编时编译器将用该字符串变量的内容代替该串变量。

在数字变量前面有一个代换操作符"$",编译器会将该数字变量的值转换为十六进制的字符串,并用该十六进制的字符串代换"$"后的数字变量。

需要将"$"字符加入到字符串中,可以用"$$"代替,此时编译器将不再进行变量代换,而是把"$$"看作一个"$"。

在两个"|"之间的"$"并不进行变量的代换,但如果"|"在双引号内,则将进行变量代换。

使用"."来表示字符串中变量名的结束。

汇编程序的变量代换2字符串"aaa str1$str1.l1$l1,a1$c"中的3个变量将在编译时被替换。

程序运行后看到下面结果:aaa str1:bbb l1:T,a1:0000004 Fccc伪指令在ARM汇编语言源程序中有些特殊助记符,它们没有相对应的操作码或者机器码,通常称为伪指令,它们所完成的操作称为伪操作。

伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,由汇编程序在源程序的汇编期间进行处理,仅在汇编过程中起作用。

在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令数据定义伪指令汇编控制伪指令信息报告伪指令宏指令以及其他伪指令符号定义伪指令作用:用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等。

符号定义有如下几种伪指令:用于定义局部变量的LCLA、LCLL和LCLS。

用于定义全局变量的GBLA、GBLL和GBLS。

用于对变量赋值的SETA、SETL和SETS。

为通用寄存器列表定义名称的RLIST。

符号定义伪指令1-1(1)LCLA、LCLL和LCLS格式:LCLA/LCLL/LCLS局部变量名说明:LCLA、LCLL和LCLS伪指令用于定义一个汇编程序中的局部变量并初始化。

其中:LCLA定义一个局部的数字变量,初始化为0。

LCLL定义一个局部的逻辑变量,初始化为F。

LCLS定义一个局部的字符串变量,初始化为空串。

这3条伪指令用于声明局部变量,在其局部作用范围内变量名必须惟一,例如在宏内。

符号定义伪指令1-2符号定义伪指令2-1 2)GBLA、GBLL和GBLS格式:GBLA/GBLL/GBLS变量名说明:GBLA、GBLL和GBLS伪操作定义一个汇编程序中的全局变量并初始化。

其中:GBLA定义一个全局数字变量,并初始化为0。

GBLL定义一个全局逻辑变量,并初始化为F。

GBLS定义一个全局字符串变量,并初始化为空串。

这3条伪指令用于定义全局变量,因此在整个程序范围内变量名必须惟一。

符号定义伪指令2-2例如:GBLA num1;定义一个全局的数字变;量,变量名为num1 num1 SETA 0xabcd;将该变量赋值为0xabcd GBLL l2;定义一个全局的逻辑变;量,变量名为l2 l2 SETL{FALSE};将该变量赋值为假GBLS str3;定义一个全局的字符串变;量,变量名为str3 str3 SETS"Hello!";将该变量赋值为"Hello!"符号定义伪指令3-1(3)SETA、SETL和SETS格式:变量名SETA/SETL/SETS表达式说明:SETA:给一个数字变量赋值。

SETL:给一个逻辑变量赋值。

SETS:给一个字符串变量赋值。

格式中的变量名必须为已经定义过的全局或局部变量,表达式为将要赋给变量的值。

符号定义伪指令3-2例如:LCLA num1;定义一个局部的数字;变量,变量名为num1 num1 SETA 0x1234;将该变量赋值;为0x1234 LCLS str3;定义一个局部的字符串变;量,变量名为str3 str3 SETS"Hello!";将该变量赋值为;"Hello!"符号定义伪指令4 4)RLIST格式:名称RLIST{寄存器列表}说明:RLIST可用于对一个通用寄存器列表定义名称,该名称可在ARM指令LDM/STM中使用。

在LDM/STM指令中,列表中的寄存器为根据寄存器的编号由低到高访问次序,与列表中的寄存器排列次序无关。

例如:pblock RLIST{R0-R3,R7,R5,R9};将寄存器列表名称定义为pblock,可在ARM指令;LDM/STM中通过该名称访问寄存器列表数据定义伪指令作用:为数据分配存储单元,同时初始化。

有如下几种:DCB字节分配DCW/DCWU半字(2字节)分配DCD/DCDU字(4字节)分配DCQ/DCQU 8个字节分配DCFS/DCFSU单精度浮点数分配DCFD/DCFDU双精度浮点数分配SPACE分配一块连续的存储单元FIELD定义一个结构化的内存表的数据域MAP定义一个结构化的内存表首地址数据定义伪指令1(1)DCB格式:标号DCB表达式说明:分配一块字节单元并用伪指令中指定的表达式进行初始化。

表达式可以为使用双引号的字符串或0~255的数字。

DCB可用"="代替。

例如:Array1 DCB 1,2,3,4,5;数组str1 DCB"Your are welcome!";构造字符串并分配空间数据定义伪指令2(2)DCW/DCWU格式:标号DCW/DCWU表达式说明:DCW分配一段半字存储单元并用表达式值初始化,它定义的存储空间是半字对齐的。

DCWU功能与DCW类似,只是分配的字存储单元不严格半字对齐。

例如:Arrayw1 DCW 0xa,-0xb,0xc,-0xd;构造固定数组并分配半字存储单元数据定义伪指令3(3)DCD/DCDU格式:标号DCD/DCDU表达式说明:DCD伪指令用于分配一块字存储单元并用伪指令中指定的表达式初始化,它定义的存储空间是字对齐的。

DCD也可用"&"代替。

DCDU功能与DCD类似,只是分配的存储单元不严格字对齐。

例如:Arrayd1 DCD 1334,234,345435;构造固定数组并分配字为单元的存储单元Label DCD str1;该字单元存放str1的地址数据定义伪指令4(4)DCQ/DCQU格式:标号DCQ/DCQU表达式说明:DCQ用于分配一块以8个字节为单位的存储区域并用伪指令中指定的表达式初始化,它定义的存储空间是字对齐的。

DCQU功能与DCQ类似,只是分配的存储单元不严格字对齐。

例如:Arrayd1 DCQ 234234,98765541;构造固定数组并分配字为单元的存储空间。

;注意:DCQ不能给字符串分配空间数据定义伪指令5(5)DCFD/DCFDU格式:标号DCFD/DCFDU表达式说明:DCFD用于为双精度的浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化,它定义的存储空间是字对齐的。

每个双精度的浮点数占据两个字单元。

DCFDU功能与DCFD类似,只是分配的存储单元不严格字对齐。

例如:Arrayf1 DCFD 6E2 Arrayf2 DCFD 1.23,1.45数据定义伪指令6(6)DCFS/DCFSU格式:标号DCFS/DCFSU表达式说明:DCFS用于为单精度的浮点数分配一片连续的字存储单元并用表达式初始化,它定义的存储空间是字对齐的。

相关文档
最新文档