ARM汇编语言中的程序结构(续)
来源:互联网 发布:java工程发布到tomcat 编辑:程序博客网 时间:2024/06/05 07:01
伪指令
在ARM汇编语言源程序中有些特殊助记符,它们没有相对应的操作码或者机器码,通常称为伪指令,它们所完成的操作称为伪操作。
伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,由汇编程序在源程序的汇编期间进行处理,仅在汇编过程中起作用。
在ARM的汇编程序中,有如下几种伪指令:
符号定义伪指令
数据定义伪指令
汇编控制伪指令
信息报告伪指令
宏指令以及其他伪指令
符号定义伪指令
作用:用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等。
符号定义有如下几种伪指令:
用于定义局部变量的LCLA、LCLL和LCLS。
用于定义全局变量的GBLA、GBLL和GBLS。
用于对变量赋值的SETA、SETL和SETS。
为通用寄存器列表定义名称的RLIST。
数据定义伪指令
作用:为数据分配存储单元,同时初始化。
有如下几种:
DCB 字节分配
DCW/DCWU 半字(2字节)分配
DCD/DCDU 字(4字节)分配
DCQ/DCQU 8个字节分配
DCFS/DCFSU 单精度浮点数分配
DCFD/DCFDU 双精度浮点数分配
SPACE 分配一块连续的存储单元
FIELD 定义一个结构化的内存表的数据域
MAP 定义一个结构化的内存表首地址
汇编控制伪指令
作用:指引汇编程序的执行流程。
常用的伪操作包括:
(1)MACRO和MEND:宏定义的开始与结束。
(2)IF、ELSE和ENDIF:根据逻辑表达式的成立与否决定是否在编译时加入某个指令序列。
(3)WHILE和WEND:根据逻辑表达式的成立与否决定是否循环执行这个代码段。
(4)MEXIT:从宏中退出。
宏定义伪指令
程序中调用该宏exam jump sub,det ;调用宏jump,宏的标号为exam,参数1为sub,参数2为det
程序被汇编后,宏的展开结果:
…
examloop1
…
BGE examloop1
examloop2
BL sub
BGT examloop2
ADR det
IF、ELSE和ENDIF
格式:
IF 逻辑表达式
代码段1
ELSE
代码段2
ENDIF
说明:能根据逻辑表达式的成立与否决定是否在编译时加入某个指令序列。 IF、ELSE和ENDIF分别可以用“[”,“|”,“]”代替。如果IF后面的逻辑表达式为真,则编译代码段1,否则编译代码段2。ELSE及代码段2也可以没有,这时,当IF后面的逻辑表达式为真时,则代码段1,否则继续编译后面的指令。
- ARM汇编语言中的程序结构(续)
- ARM汇编语言中的程序结构
- ARM汇编语言中的程序结构
- ARM汇编语言中的程序结构
- ARM汇编语言中的伪操作(一)
- 【基于Android的ARM汇编语言系列】之三:ARM汇编语言程序结构
- arm中的汇编语言之ARM指令集
- ARM汇编语言中的中括号(“[”和“]”)是什么意思
- Win32汇编语言程序结构
- 汇编语言程序结构(0401)
- IAR ARM中的汇编语言学习笔记
- ARM汇编语言指令(1)
- ARM汇编语言指令(2)
- ARM汇编语言要点(一)
- ARM汇编语言要点(二)
- ARM汇编语言要点(三)
- ARM汇编语言指令(1)
- ARM汇编语言指令(2) .
- 1116. Come on! Let's C (20) 简单模拟
- Java for Web学习笔记(二九):JSTL(5)FMT Tag(上)
- 【安卓-自定义布局】安卓App开发思路 一步一个脚印(六)实现ViewPager最基本的
- java反射详解
- 1117. Eddington Number(25) 模拟
- ARM汇编语言中的程序结构(续)
- 流程控制语句巩固
- Linux 进程
- linux下vi编译器中上下左右是ABCD的解决方法
- C/C++中的字面值常量、常量以及变量
- React Native填坑之旅--HTTP请求篇
- Codeforces 723A The New Year: Meeting Friends(题意有偏差的水题)
- 堆排序
- 栈的应用案例2:中缀表达式转后缀表达式