第五章、ARM汇编语言程序设计·伪操作·汇编语言语句格式汇编语言程序格式,汇编编译器的使用·汇编程序设计举例
第五章、ARM汇编语言程序设计 • 伪操作 • 汇编语言语句格式 • 汇编语言程序格式 • 汇编编译器的使用 • 汇编程序设计举例
、伪操作·伪操作:一不像机器指令那样在计算机运行期间由机器执行,它是在汇编程序对源程序汇编期间由汇编程序处理的。·宏:一是一段独立的程序代码。一在程序中通过宏指令调用宏一当程序被汇编时,汇编程序将对每个宏调用作展开,用宏定义体取代程序中的宏指令
一、伪操作 • 伪操作: – 不像机器指令那样在计算机运行期间由机器执 行,它是在汇编程序对源程序汇编期间由汇编 程序处理的。 • 宏: – 是一段独立的程序代码。 – 在程序中通过宏指令调用宏。 – 当程序被汇编时,汇编程序将对每个宏调用作 展开,用宏定义体取代程序中的宏指令
伪操作分为:·符号定义(Symbol definition)伪操作·数据定义(Data definition)伪操作汇编控制(Assembly control)伪操作·框架描述(Frame description)伪操作·信息报告(Reporting)伪操作·其他(Miscellaneous)伪操作
伪操作分为: • 符号定义(Symbol definition)伪操作 • 数据定义(Data definition)伪操作 • 汇编控制(Assembly control)伪操作 • 框架描述(Frame description)伪操作 • 信息报告(Reporting)伪操作 • 其他(Miscellaneous)伪操作
一.符号定义伪操作用于定义ARM汇编程序的变量,对变量进行赋值以及定义寄存器名称。包括以下伪操作:GBLA、GBLL及GBLS声明全局变量。LCLA、LCLL及LCLS声明局部变量。SETA、SETL及SETS给变量赋值。RLIST为通用寄存器列表定义名称。CN为协处理器的寄存器定义名称。CP为协处理器定义名称。DN及SN为VFP的寄存器定义名称。FN为FPA的浮点寄存器定义名称
一.符号定义伪操作 用于定义ARM汇编程序的变量,对变量进行赋值 以及定义寄存器名称。包括以下伪操作: • GBLA 、GBLL 及GBLS声明全局变量。 • LCLA 、LCLL 及LCLS 声明局部变量。 • SETA 、SETL 及SETS 给变量赋值。 • RLIST 为通用寄存器列表定义名称。 • CN 为协处理器的寄存器定义名称。 • CP 为协处理器定义名称。 • DN 及SN 为VFP的寄存器定义名称。 • FN 为FPA的浮点寄存器定义名称
1. GBLA、GBLL和GBLS用于声明一个ARM程序中的全局变量,并将其初始化。GBLA声明一个全局的算术变量,并将其初始化成O。GBLL声明一个全局的逻辑变量,并将其初始化成[FALSE}GBLS声明一个全局的串变量,并将其初始化成空串“”句法:<gblx> variable其中:<glbx>是3种伪操作之一:GBLA、GBLL和GBLSvariable是所说明的全局变量的名称。在其作用范围内唯用法:如果用这些伪操作重新声明已经声明过的变量,则变量的值将被初始化成后一次声明语句中的值。全局变量的作用范围为包含该变量的源程序
1. GBLA、GBLL和GBLS • 用于声明一个ARM程序中的全局变量,并将其 初始化。 • GBLA声明一个全局的算术变量,并将其初始化成0。 • GBLL声明一个全局的逻辑变量,并将其初始化成{FALSE} • GBLS声明一个全局的串变量,并将其初始化成空串“ ”。 • 句法: <gblx> variable 其中:<glbx>是3种伪操作之一:GBLA、GBLL和GBLS variable是所说明的全局变量的名称。在其作用范围内唯 一。 • 用法: 如果用这些伪操作重新声明已经声明过的变量,则变量 的值将被初始化成后一次声明语句中的值。 全局变量的作用范围为包含该变量的源程序