4第四章 ARM汇编语言程序设计-文档资料

MAP 用于定义一个结构化的内存表首地址
FIELD 用于定义一个结构化的内存表的数据域
1、 DCB(DCB也可用“=”代替)
语法格式:
标号
DCB 表达式
DCB伪指令用于分配一片连续的字节 存储单元并用伪指令中指定的表达式初 始化。其中,表达式可以为0~255的数 字或字符串。
使用示例:
Str DCB "This is a test!"
0xaa
LCLL Test5 ;声明一个局部的逻辑变量,变 量名为Test5
Test4 SETL
真
{TRUE};将该变量赋值为
LCLS Test6 ;定义一个局部的字符串变量, 变量名为Test6
Test6 SETS
为“Testing”
“Testing” ;将该变量赋值
3、 SETA、SETL和SETS
伪指令仅在汇编过程中起作用,一 旦汇编结束,伪指令的使命就完成。
指令 : 由ARM处理器执行
ARM 指令系统
在ARM的汇编程序中,有如下几种伪指令:
符号定义伪指令、 数据定义伪指令、 汇编控制伪指令、 宏指令以及其他伪指令。
ARM 指令系统
4.1.1 符号定义伪指令
符号定义伪指令用于定义ARM汇 编程序中的变量、对变量赋值以及定 义寄存器的别名等操作。
ARM 指令系统
4.1.1 符号定义伪指令
常见的符号定义伪指令有如下几种:
— 用 于 定 义 全 局 变 量 的 GBLA 、 GBLL 和 GBLS。
— 用 于 定 义 局 部 变 量 的 LCLA 、 LCLL 和 LCLS。
— 用于对变量赋值的SETA、SETL、SETS。 — 为通用寄存器列表定义名称的RLIST。
将 寄 存 器 列 表 名 称 定 义 为 RegList , 可在ARM指令LDM/STM中通过该名称 访问寄存器列表。
例:
RegList RLIST {r1-r13};必须顶格开始写
LDMIA r0,RegList
ARM 指令系统
4.1.2 数据定义(Data Definition)伪指令 数据定义伪指令一般用于为特定的数据
IF、ELSE、ENDIF伪指令可以嵌套使用。
使用示例:
GBLL Test ;声明一个全局的逻辑变量,变量名为Test
……
IF Test = TRUE 指令序列1
ELSE 指令序列2 ENDIF
s3c44b0x ARM芯片的初始化源程序:
GBLL THUMBCODE
;global logical variable, init. to {false}
使用示例:
GBLA Counter
;声明一个全局的数学变量,变量名为Counter
Counter SETA
3
;由变量Counter控制循环次数
……
WHILE Counter < 10 指令序列
WEND
3、 MACRO、MEND
语法格式:
MACRO
$标号宏名 $参数1,$参数2,……
指令序列
MEND
第四章 ARM汇编语言程序设计
ADS1.2环境下的汇编语句格式
1. ARM 汇编中,所有标号必须在一行的顶格书写, 其后面不要添加“:”,而所有指令均不能顶格书写。
2. ARM 汇编器对标识符大小写敏感,书写标号及 指令时字母大小写要一致,在ARM 汇编程序中,一个 ARM 指令、伪指令、寄存器名可以全部为大写字母, 也可以全部为小写字母,但不要大小写混合使用(如 果混合使用也能编译通过,如mov SP, r6能编译 通过,但是moV SP, r6则出现错误)。
分配存储单元,同时可完成已分配存储单元
的初始化。常见的数据定义伪指令有如下几 种:
— DCB
用于分配一片连续的字节存储单元并用
指定的数据初始化。
—DCW(DCWU) 用于分配一片连续的半字存储 单元并用指定的数据初始化。
— DCFD(DCFDU)用于为双精度的浮点数分配一片 连续的字存储单元并用指定的数据初始化。
HandleIRQ
#4
HandleFIQ
#4
ARM 指令系统
4.1.3 汇编控制伪指令
汇编控制伪指令用于控制汇编 程序的执行流程
常用的汇编控制伪指令包括 : — IF、ELSE、ENDIF — WHILE、WEND — MACRO、MEND
— MEXIT
1 IF、ELSE、ENDIF (等价于[ | ] )
LCLA伪指令用于定义一个局部的数字变量, 并初始化为0;
LCLL伪指令用于定义一个局部的逻辑变量, 并初始化为F(假);
LCLS伪指令用于定义一个局部的字符串变量, 并初始化为空;
以上三条伪指令用于声明局部变量
使用示例:
LCLA Test4 ;声明一个局部的数字变量, 变量名为Test4
Test3 SETA 0xaa ; 将 该 变 量 赋 值 为
— DCFS(DCFSU) 用 于 为 单 精 度 的 浮 点 数分配一片连续的字存储单元并用指定的数据 初始化。
— DCQ(DCQU) 用于分配一片以8字节 为单位的连续的存储单元并用指定的数据初始 化。
DCD(DCDU)用于分配一片连续的字存储单 元并用指定的数据初始化。
SPACE 用于分配一片连续的存储单元
语法格式:
变量名 SETA(SETL或SETS)表达式
伪 指 令 SETA 、 SETL 、 SETS 给 一 个 已 经 定 义 的全局变量或局部变量赋值。
SETA伪指令用于给一个数学变量赋值; SETL伪指令用于给一个逻辑变量赋值; SETS伪指令用于给一个字符串变量赋值;
其中,变量名为已经定义过的全局变量 或局部变量,表达式为将要赋给变量的值。
AREA RamData, DATA, READWRITE
^ (_IRQ_BASEADDRESS) ; ^ 即 MAP
HandleReset # 4
; # 即 DCD
HandleUndef # 4
HandleSWI
#4
HandlePabort # 4
HandleDabort # 4
HandleReserved # 4
由于以上三条伪指令用于定义全局变量,因此在整个 程序范围内变量名必须唯一。
GBLA Test1
;定义一个全局的数字变量,变量名为Test1
Test1 SETA 0xaa
;将该变量赋值为0xaa
GBLL Test2
;定义一个全局的逻辑变量,变量名为Test2
Test2 SETL {TRUE}
;将该变量赋值为真
4、 MAP,MAP也可用“^”代替。
语法格式:
MAP 表达式{,基址寄存器}
MAP伪指令用于定义一个结构化的内 或数学 表达式,基址寄存器为可选项,当基址 寄存器选项不存在时,表达式的值即为 内存表的首地址,当该选项存在时,内 存表的首地址为表达式的值与基址寄存 器的和。
使用示例:
MAP 0x100 ;定义结构化内存 表首地址的值为0x100。
A FIELD 16
;定义A的长度为16
字节,位置为0x100
B FIELD 32
;定义B的长度为32
字节,位置为0x110
S FIELD 256 ; 定 义 S 的 长 度 为 256字节,位置为0x130
s3c44b0x ARM芯片的初始化源程序:
3. 注释可以在一行的顶格书写。
ARM 指令系统
4.1伪操作
在ARM汇编语言程序里,有一些特殊 指令助记符,这些助记符与指令系统的
助记符不同,没有相对应的操作码,通 常称这些特殊指令助记符为伪指令
他们所完成的操作称为伪操作。
ARM 指令系统
伪指令 : 由汇编器处理
伪指令是由汇编器对源程序汇编期 间进行处理的.
使用示例:
DataTest DCD 4,5,6 ; 分 配 一 片连续的字存储单元并初始化。
3、 SPACE(SPACE也可用“%”代替)
语法格式:
标号
SPACE 表达式
SPACE伪指令用于分配一片连续 的存储区域并初始化为0。其中,表 达式为要分配的字节数。
使用示例:
DataSpace SPACE 100 ; 分 配 连 续 100字节的存储单元并初始化为0。
1、 GBLA、GBLL和GBLS 语法格式:
GBLA(GBLL或GBLS) 全局变量名
GBLA、GBLL和GBLS伪指令用于定义一个ARM程 序中的全局变量,并将其初始化。
GBLA伪指令用于定义一个全局的数字变量,并初始 化为0;
GBLL伪指令用于定义一个全局的逻辑变量,并初始 化为F(假);
GBLS伪指令用于定义一个全局的字符串变量,并初 始化为空;
|
;|=else
THUMBCODE SETL {FALSE}
]
;]=endif
2、 WHILE、WEND
语法格式:
WHILE 逻辑表达式
指令序列
WEND
WHILE、WEND伪指令可以嵌套使用。
WHILE、WEND伪指令能根据条件的成立与 否决定是否循环执行某个指令序列。当WHILE 后面的逻辑表达式为真,则执行指令序列, 该指令序列执行完毕后,再判断逻辑表达式 的值,若为真则继续执行,一直到逻辑表达 式的值为假。
;分配一片连续的字节存储单元并初始化。
2、 DCD(或DCDU,DCD也可用“&”代替)
语法格式:
标号
DCD(或DCDU) 表达式
DCD(或DCDU)伪指令用于分配一片连续 的字存储单元并用伪指令中指定的表达式初 始化。其中,表达式可以为程序标号或数字 表达式。
合集下载

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

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

第4章ARM汇编语言程序设计本章介绍如何编写ARM和thumb汇编语言程序。

同时介绍ARM汇编编译器armasm的使用方法。

4.1伪操作ARM 汇编语言源程序中语句由指令、伪操作和宏指令组成。

在ARM中伪操作称为derective,这里为保持和国内在IBM PC汇编语言中对名词翻译的一致性derective称为伪操作;同样在ARM中宏指令被称为pseudo-instructlon,这里将其称为宏指令,宏指令也是通过伪操作定义的。

本节介绍伪操作和宏指令。

伪操作不像机器指令那样在计算机运行期间由机器执行,它是在汇编程序肘源程序汇编期间由汇编程序处理的。

宏是一段独立的程序代码。

在程序中通过宏指令调用该宏。

当程序被汇编时,汇编程序将对每个宏调用作展开,用宏定义体取代源程序中的宏指令。

本节介绍以下类型的ARM伪操作和宏指令。

●符号定义(Symbol definition伪操作。

●数据定义(Data definition)伪操作。

●汇编控制(Assembly control)伪操作。

●框架描述(Frame description)伪操作。

●信息报告(Reporting)伪操作。

●其他(Miscellaneous)伪操作。

4.1.1符号定义伪操作符号定义(Symbol definition)伪操作用于定义ARM汇编程序中的变量,对变量进行赋值以及定义寄存器名称。

包括以下伪操作。

●GBLA、GBLL及GBLS声明全局变量。

●LCLA.LcLL及LCLS 声明局部变量。

●SETA.SETL及SETS 给变量赋值。

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

●CN为协处理器的寄存器定义名称。

●CP为协处理器定义名称。

●DN及SN为VFP的寄存器定义名称。

FN为FPA的浮点寄存器定义名称。

1 GBLA GBLL及GBLSGBLA GBLL及GBLS伪操作用于声叫个ARM程序中的全局变量,并将其初始化。

GBLA伪操作声明一个全局的算术变量,并将其初始化成0。

第4章_基于ARM7系列的汇编语言程序设计

第4章_基于ARM7系列的汇编语言程序设计

13
4.2.2 常量
常量就是程序中出现的那些固定值, 也就是说其值在程序的运行过程中不 能被改变,除了自身的值以外,没有 其他属性的数值。 ARM7汇编程序所支持的常量可以分 为数值常量、逻辑常量、字符串常量 和和字符常量。

14
4.2.3 变量
变量就是在程序运行过程中可以改变 的量。通过定义变量可以简化程序的 表达,增加程序的可读性,方便对程 序进行修改,便于交流与记忆。 ARM7汇编语言程序所支持的变量有 数值变量、逻辑变量和字符串变量。
Src Dst
DCD DCD
data
AREA |.extra|, NOINIT, READWRITE ; 未初始数据段的名字.extra SPACE 1024 END
声明文件结束
; 文件结束
8
4.1.2 ARM7汇编语言程序框架

段:

ARM汇编程序由段组成(程序段、数据段); 段是由汇编器伪指令AREA定义的相对独立程序 块; 段的属性:READONLY(只读)或READWRITE (读写)分别用于定义一个代码段或数据段;
CODE32 ;声明32位ARM指令 START LDR R0, =src ; R0指向源数据块 LDR R1, =dst ; R1指向目的数据块 标号顶格写 MOV R2, #num ; R2需要拷贝的数据个数 wordcopy LDR R3, [R0], #4 ; 从源数据块中取一个字,放入R3中, 程序代码段 ; R0=R0+4 STR R3, [R1], #4 ; 将R3中的数据存入R1指向的存储 ; 单元中,R1=R1+4 SUBS R2, R2, #1 ; R2计数器减1 BNE wordcopy ; 如果R2不为0,则转向wordcopy处

第四章 ARM汇编程序设计

第四章 ARM汇编程序设计

R0,=0x3FF5000 R1,0xFF R1,[R0] R0,=0x3FF5008 R1,0x01 R1,[R0] PRINT_TEXT
PRINT_TEXT …… MOV PC,LR …… END
第五节 ARM汇编程序示例
start MOV r0, #3 MOV r1, #3 MOV r2, #2 BL arithfunc stop MOV r0, #0x18 LDR r1, =0x20026 SWI 0x123456 arithfunc CMP r0, #num MOVHS pc, lr ADR r3, JumpTable ADR LDR JumpTable DCD DCD DoAdd ADD MOV DoSub SUB MOV r3, JumpTable pc, [r3,r0,LSL#2] DoAdd DoSub
第一节 ARM汇编指示命令

其他常用的汇编指示命令 – 边界对齐:ALIGN – 段定义:AREA – 指令集定义:CODE16和CODE32 – 汇编结束:END – 程序入口:ENTRY – 常量定义:EQU – 声明一个符号可以被其他文件引用:EXPORT和GLORBAL – 声明一个外部符号:IMPORT和EXTERN
第四节 ARM汇编程序结构


顺序 分支 循环
– –
–
–
MOV r0,#10 loop … SUBS r0,r0,#1 BNE loop

子程序
第四节 ARM汇编程序结构

子程序
AREA ENTRY Start LDR LDR STR LDR LDR STR BL …… Init,CODE,READONLY
第一节 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汇编语言程序中常用的符号
在汇编语言程序设计中,经常使用各种符号表 示变量、常量和地址 符号由大小写字母、数字以及下划线组成。 符号区分大小写,同名的大、小写符号会被 编译器认为是两个不同的符号。 符号在其作用范围内必须唯一,即在其作用 范围内不可有同名的符号。 自定义的符号名不能与系统的保留字相同。 符号名不应与指令或伪指令同名。

第4章 ARM汇编程序设计

第4章 ARM汇编程序设计
DCD 分配一段字的内存单元,并用指定的数据初始化 语法格式: {标号} DCD(或DCDU) 表达式 DCD:“ & ” DCD:字对齐 DCDU:不严格字对齐。 data1 DCD 1,5,20 ;其值为1,5,20 data2 DCD memaddr+4 ;分配一个字单元,其值为程序中标号memaddr加4个字节
四、数据帧描述伪操作


数据帧描述伪操作用于汇编程序调试,帮助程序 员在构建汇编程序函数时避免错误。
FRAME ADDRESS FRAME POP FRAME PUSH FRAME REGISTER FRAME RESTORE FRAME SAVE FRAME STATE REMEMBER FRAME STATE RESTORE FUNCTION或 PROC ENDFUNC 或 ENDP
二、数据定义伪操作
DCFD 分配一段双字的内存单元,并用双精度的浮点数 据初始化
语法格式: {标号} DCFD(或DCFDU) 表达式 每个双精度的浮点数占据两个字单元。 DCFD:字对齐 DCFDU:不严格字对齐 DCFD DCFDU 1E308,-4E-100 100000,-.1,3.1E26
三、汇编控制伪操作

(2) WHILE、WEND
语法格式: WHILE 逻辑表达式 指令序列 WEND 实例:
GBLA cnt cnt SETA 1 WHILE cnt <=4 cnt SETA cnt+1 … WEND
;定义变量 ;变量赋值
;代码执行4次
三、汇编控制伪操作

(3) MACRO、 MEND、 MEXIT
ARM 嵌入式系统
第4章 ARM汇编程序设计

ARM汇编语言程序设计

ARM汇编语言程序设计
13
使用局部标号的例子:
例1 无作用范围字符 01 SUBS r0,r0,#1
BNE %B 01
;每次循环使r0=r0-1 ;跳转到01标号去执行
例2 作用范围字符为NAME
ROUT NAME
; NAME作用范围
01NAME SUBS r0,r0,#1
;每次循环使r0=r0-1
BNE %B 01NAME ;跳转到01NAME标号去执行
Labeladd add r0,r0,r1
;
Str1
SETS
“This is a string.”
BKPT ;断点
标签: welcomefun , strarm , Labeladd, Str1
指令/伪操作/伪指令: STMFD , DCB , add , SETS
操作数:其他部分
9
注意: ARM程序中,指令、伪指令、伪操作、寄存 器助记符可以全部为大写或小写,但大小写不能混合 使用。
; “Welcom to ARM world!”字符串
LDMFD
sp!,{pc}
;恢复寄存器值
7
Adrstrarm ;adrstrarm标签
DCD strarm ;保存strarm的地址
AREA constdatasec, DATA, READONLY,ALIGN=0
;数据段,名称为constdatasec, 属性为只读
ENDP ;函数main结束
EXPORT main
;导出main函数供外部调用
;引入三个C运行时库函数和ARM库
IMPORT _main
IMPORT __main
IMPORT _printf
IMPORT ||Lib$$Request$$armlib||, WEAK

ARM嵌入式系统 第4-1章 ARM汇编语言程序设计


15
符号定义伪指令Ⅳ
3. SETA、SETL、SETS 、 、
格式: 格式:变量名 SETA/SETL/SETS 表达式
说明: 说明:
SETA:给一个数字变量赋值; :给一个数字变量赋值; SETL:给一个逻辑变量赋值; :给一个逻辑变量赋值; SETS:给一个字符串变Ⅳ量赋值; :给一个字符串变Ⅳ量赋值;
在宏内定义局部变量后, 在宏内定义局部变量后,则在宏外使用该指令时编 13 译会出错。 译会出错。
符号定义伪指令Ⅲ
2. GBLA、GBLL、GBLS 、 、
格式: 格式:GBLA/GBLL/GBLS 变量名
伪操作定义一个汇编程序中的全局变量,并初始化, 伪操作定义一个汇编程序中的全局变量,并初始化, 其中: 其中:
Array1 DCB 1,2,3,4,5 ;数组 str1 DCB “Your are welcome!” ;构造 ! 字符串并分配空间。 字符串并分配空间。
22
2. DCW/DCWU:
标号/变量 标号 变量 DCW/DCWU 表达式
DCW分配一段半字存储单元并用表达式值初 分配一段半字存储单元并用表达式值初 始化,它定义的存储空间是半字对齐的。 始化,它定义的存储空间是半字对齐的。 DCWU功能跟 功能跟DCW类似,只是分配的字存储 类似, 功能跟 类似 单元不严格半字对齐。 单元不严格半字对齐。 例如: 例如:
所有的标签必须在一行的开头顶格写, 所有的标签必须在一行的开头顶格写,前面不能留 空格,后面也不能跟C语言中的标签一样加上 ” 语言中的标签一样加上“ 空格,后面也不能跟 语言中的标签一样加上“:”; ARM汇编器对标识符的大小写敏感 书写标号及指 汇编器对标识符的大小写敏感,书写标号及指 汇编器对标识符的大小写敏感 令时字母的大小写要一致; 令时字母的大小写要一致; 注释使用“ ”符号,注释的内容从“ ” 注释使用“;”符号,注释的内容从“;”开始到该 行的结尾结束。 行的结尾结束。 例:

第4章ARM程序设计


第4章ARM程序设计
4
4.1 ARM工程(续)
汇编语言 源文件
C/C++语言 源文件
头文件
汇编器
编译器
目标文件 目标文件
C/C++库文件
连接器
可执行文件
第4章ARM程序设计
5
4.1 ARM工程(续)
ARM提供的开发工具Code Warrior for ARM中包含的编译器如下:
编译器 语言种类 源文件类型 源文件扩展名 目标文件类型
3
4.1 ARM工程(续)
用汇编语言或C/C++语言编写的程序 叫做源程序,对应的文件叫做源文件。
一个ARM工程应由多个文件组成,其 中包括扩展名为.S的汇编语言源文件、扩 展名为.C的C语言源文件,扩展名为.CPP 的C++源文件、扩展名为.H的头文件等。
ARM工程的各种源文件之间的关系, 以及最后形成可执行文件的过程如下:
代码段,当程序较长时,可以分割为
多个 代码段和数据段。
第4章ARM程序设计
12
4.2.1 段(续)
以下是一个汇编语注言意程:序教段材的上基的本结构:
程序有误
AREA Init, CODE, READONLY ;只读的代码段
Init
ENTRY
;程序入口点
start LDR R0,=0X3FF5000
2
4.1 ARM工程
由于 C 语言便于理解,有大量的 支持库,所以它是当前 ARM 程序设计 所使用的 主要编程语言。
对硬件底系统层的操初始作化、CPU 状态
设定、中断使能、主频设定以及 RAM 控制参数初始化等 C 程序力所不能及 的 底层操作,还是要由 汇编语言程 序来完成。

第4章 ARM汇编程序设计1


SUBT
ARM汇编程序设计
[ 或IF 这三个符号连用,进行条件汇编 | 或ELSE
汇编控制指示 符
] 或ENDIF
MACRO
MEND MEXIT WHILE
这二个符号连用,定义一个宏定义
用来在结束前退出宏定义 这二个符号连用,进行重复汇编
WEND
ARM汇编程序设计
ALIGN AREA CODE16 CODE32 END ENTRY * 或EQU EXPORT或 GLOBAL IMPORT或 EXTERN GET或 INCLUDE INCBIN KEEP NOFP REQUIRE REQUIRE8 PRESERVE8 RN ROUT 从一个字边界开始 指示汇编器汇编一段新的代码或数据部分 指示汇编器将随后的指令作为16位Thumb指令 指示汇编器将随后的指令作为32位ARM指令 表示源程序的结束 指向程序的入口,一个源文件中只能有一个 ENTRY 对一个常量赋予一个符号名
DCW(或DCWU)
语法格式: {标号} DCW(或DCWU) 表达式
DCW:半字对齐 DCWU:不严格半字对齐。 表达式取值范围:-32768~65535 data1 DCW -128,num1+8 ;num1必须是已经定义过的
DCD(或DCDU)
语法格式:
{标号}
DCD(或DCDU)
表达式
DCD:“ & ” DCD:字对齐 DCDU:不严格字对齐。 data1 data2 DCD DCD 1,5,20 memaddr+4 ;其值为1,5,20
;使用该串变量 ;宏定义结束
局部:作用范围为包含该局部变量的宏代码的一个实例
SETA、SETL、SETS

SETA、SETL和SETS 语法格式: 变量名 SETA(SETL或SETS) 表达式

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


ARM 指令系统 使用示例:
LCLA Test3
;声明一个局部的
数字变量,变量名为Test3
Test3 SETA 0xaa;将该变量赋值为
0xaa
LCLL Test4
;声明一个局部的
逻辑变量,变量名为Test4
Test4 SETL {TRUE} ; 将 该 变
量赋值为真
4、 RLIST
名称 RLIST {寄存器列表}
使用示例:
GBLA Counter
;声明一个全局的数学变量,变量名为Counter
Counter SETA
3
;由变量Counter控制循环次数
……
WHILE Counter < 10 指令序列
WEND
3、 MACRO、MEND
语法格式:
MAபைடு நூலகம்RO
$标号宏名 $参数1,$参数2,……
指令序列
MEND
[ {CONFIG} = 16
;[=if,{CONFIG}:build-in variable defined by ARM
;assembler,16=assembing Thumbcode.
THUMBCODE SETL {TRUE} ;SETL:set the logic variable
CODE32 ;changing from Thumb state to Arm state
GBLS Test3
;定义一个全局的字符串变量,变量名为Test3
Test3 SETS "Testing"
;将该变量赋值为"Testing"
ARM 指令系统
2、 LCLA、LCLL和LCLS
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档