上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)ARM汇编语言程序设计

第五章、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声明一个全局的算术变量,并将其初始化成0。 ● GBLL声明一个全局的逻辑变量,并将其初始化成FALSE} GBLS声明一个全局的串变量,并将其初始化成空串“”。 句法: variable 其中:是3种伪操作之一:GBLA、GBLL和GBLS variable是所说明的全局变量的名称。在其作用范围内唯 用法: 如果用这些伪操作重新声明己经声明过的变量,则变量 的值将被初始化成后一次声明语句中的值。 全局变量的作用范围为包含该变量的源程序
1. GBLA、GBLL和GBLS • 用于声明一个ARM程序中的全局变量,并将其 初始化。 • GBLA声明一个全局的算术变量,并将其初始化成0。 • GBLL声明一个全局的逻辑变量,并将其初始化成{FALSE} • GBLS声明一个全局的串变量,并将其初始化成空串“ ”。 • 句法: variable 其中:是3种伪操作之一:GBLA、GBLL和GBLS variable是所说明的全局变量的名称。在其作用范围内唯 一。 • 用法: 如果用这些伪操作重新声明已经声明过的变量,则变量 的值将被初始化成后一次声明语句中的值。 全局变量的作用范围为包含该变量的源程序

1.GBLA、GBLL和GBLS ·例子: GBLA objectsize;声明一个全局的算术变量。 objectsize SETA 0xff;向该变量赋值 SPACE objectsize;引用该变量 GBLL statusB ;声明一个全局逻辑变量statusB statusB SETL{TRUE};向该变量赋值
• 例子: GBLA objectsize ;声明一个全局的算术变量。 objectsize SETA 0xff;向该变量赋值 SPACE objectsize ;引用该变量 GBLL statusB ;声明一个全局逻辑变量statusB statusB SETL {TRUE};向该变量赋值 1. GBLA、GBLL和GBLS

2.LCLA、LCLL和LCLS 用于声明一个ARM程序中的局部变量,并将其 初始化。 ● LCLA声明一个局部的算术变量,并将其初始化成0。 LCLL声明一个局部的逻辑变量,并将其初始化成FALSE} ● LCLS声明一个局部的串变量,并将其初始化成空串“”。 ● 句法: variable 其中:是3种伪操作之一:LCLA、LCLL和LCLS variable是所说明的局部变量的名称。在其作用范围内唯 用法: 如果用这些伪操作重新声明己经声明过的变量,则变量 的值将被初始化成后一次声明语句中的值。 局部变量的作用范围为包含该局部变量的宏代码的一个实例
2. LCLA、LCLL和LCLS • 用于声明一个ARM程序中的局部变量,并将其 初始化。 • LCLA声明一个局部的算术变量,并将其初始化成0。 • LCLL声明一个局部的逻辑变量,并将其初始化成{FALSE} • LCLS声明一个局部的串变量,并将其初始化成空串“ ”。 • 句法: variable 其中:是3种伪操作之一:LCLA、LCLL和LCLS variable是所说明的局部变量的名称。在其作用范围内唯 一。 • 用法: 如果用这些伪操作重新声明已经声明过的变量,则变量 的值将被初始化成后一次声明语句中的值。 局部变量的作用范围为包含该局部变量的宏代码的一个实例

2.LCLA、LCLL和LCLS ·例子: MACRO ;声明一个宏 Slabel r message$a;宏的原型 LCLS err ;声明一个局部串变量err。 err SETS“error no:”;向该变量赋值 Slabel ;代码 INFO O,“err”:CC:STR:$a;使用该串变量 MEND ;宏定义结束
• 例子: MACRO ;声明一个宏 $label message $a;宏的原型 LCLS err ;声明一个局部串变量err。 err SETS “error no:”;向该变量赋值 $label ;代码 INFO 0,“err”:CC::STR:$a ;使用该串变量 MEND ;宏定义结束 2. LCLA、LCLL和LCLS

3.SETA、SETL和SETS 用于给一个ARM程序中的变量赋值。 SETA给一个算术变量赋值。 SETL给一个逻辑变量赋值。 SETS给一个串变量赋值。 句法: variable expr 其中:是3种伪操作之一:SETA、SETL和SETS variable是已定义变量的名称。在其作用范围内唯一。在 向变量赋值前必须先声明该变量。 例子: GBLA objectsize objectsize SETA Oxff SPACE objectsize
3. SETA、SETL和SETS • 用于给一个ARM程序中的变量赋值。 • SETA给一个算术变量赋值。 • SETL给一个逻辑变量赋值。 • SETS给一个串变量赋值。 • 句法: variable expr 其中:是3种伪操作之一:SETA、SETL和SETS variable是已定义变量的名称。在其作用范围内唯一。在 向变量赋值前必须先声明该变量。 • 例子: GBLA objectsize objectsize SETA 0xff SPACE objectsize

4.RLIST 为一个通用寄存器列表定义名称。 句法: name RLIST {list-of-register 其中:name为寄存器列表的名称。 {list-of-register}为通用寄存器列表。 。用法: 定义的名称可以在LDM/STM指令中使用。在LDM/STM 指令中,寄存器列表中的寄存器访问次序总是先访问 编号较低的寄存器,再访问编号较高的寄存器,而不 管寄存器列表中各寄存器的排列顺序。 例子: Context RLIST RO-R6,R8,R10-R12,R15} ;将寄存器列表名称定义为Context
4. RLIST • 为一个通用寄存器列表定义名称。 • 句法: name RLIST {list-of-register} 其中:name为寄存器列表的名称。 {list-of-register}为通用寄存器列表。 • 用法: 定义的名称可以在LDM/STM指令中使用。在LDM/STM 指令中,寄存器列表中的寄存器访问次序总是先访问 编号较低的寄存器,再访问编号较高的寄存器,而不 管寄存器列表中各寄存器的排列顺序。 • 例子: Context RLIST {R0-R6,R8,R10-R12,R15} ;将寄存器列表名称定义为Context
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)ARM指令集.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)ARM处理器.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)MCS-51系统.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)MCS-51汇编语言程序设计.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)MCS-51单片机结构.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)MCS-51单片机指令系统.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源_一类课程复评表(微型计算机在检测技术及仪器中的应用).pdf
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(PPT课件)测井技术的现状与未来.ppt
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(PPT课件)油田评价——测井技术的应用(施建华).ppt
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(PPT课件)测井方法与数据处理(庞巨丰).ppt
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源_作业习题.doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(实验指导书)测井仪器方法及原理(刘选朝).doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(电子教案)第四章 裸眼井声波测井.doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(电子教案)第五章 固井声波测井仪.doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(电子教案)第二章 感应测井.doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(电子教案)第三章 电磁波传播测井.doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(电子教案)第一章 双侧向测井.doc
- 西安石油大学电子工程学院:《测井仪器方法及原理》课程教学资源(教学大纲)测控技术与仪器专业.doc
- 西安石油大学:《单片机原理及应用 Single chip Microcomputer Principle and Application》课程教学资源(PPT课件讲稿)第七章 MCS-51扩展I/O接口的设计、第十章 MCS-51与D/A转换器、A/D转换器的接口.ppt
- 西安石油大学:《单片机原理及应用 Single chip Microcomputer Principle and Application》课程教学资源(PPT课件讲稿)第六章 存储器系统设计.ppt
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)THUMB指令集.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)嵌入式系统基础.pdf
- 上海交通大学:《单片机原理与接口技术》课程教学资源(课件讲稿)绪论.pdf
- 上海交通大学:《通信基本电路》课程教学资源_无线RFID阅读器研制.doc
- 上海交通大学:《通信基本电路》课程教学资源(习题集)高频(通信基本电路习题).pdf
- 上海交通大学:《通信基本电路》课程教学资源(例题)example1.ppt
- 上海交通大学:《通信基本电路》课程教学资源(例题)example_nonlinear.pdf
- 上海交通大学:《通信基本电路》课程教学资源(例题)example_OSC.pdf
- 上海交通大学:《通信基本电路》课程教学资源(例题)example_PA.pdf
- 上海交通大学:《通信基本电路》课程教学资源(例题)example_PM.pdf
- 上海交通大学:《通信基本电路》课程教学资源(参考资料)Mixers.ppt
- 上海交通大学:《通信基本电路》课程教学资源(实验报告)通信基本电路实验-第056组(组长任政)设计报告.doc
- 上海交通大学:《通信基本电路》课程教学资源(实验资料)453-03530-0-CXA1619BM-BS.pdf
- 上海交通大学:《通信基本电路》课程教学资源(实验资料)《通讯基本电路实验》课程教学大纲.doc
- 上海交通大学:《通信基本电路》课程教学资源(实验资料)调频无线通信系统设计.doc
- 上海交通大学:《通信基本电路》课程教学资源(讲义)第三章 高频小信号放大.pdf
- 上海交通大学:《通信基本电路》课程教学资源(讲义)第九章 角度调制与解调.pdf
- 上海交通大学:《通信基本电路》课程教学资源(讲义)第五章 非线性电路和变频器.pdf
- 上海交通大学:《通信基本电路》课程教学资源(讲义)第六章 高频功率放大器.pdf
- 上海交通大学:《通信基本电路》课程教学资源(讲义)第四章 噪声与干扰.pdf