伪指令的C语言,伪指令
AREA:用于定义一个代码段或数据段
格式:AREA 段名 属性 1 ,属性 2 ,……
注意:段名若以数字开头,则该段名需用 “ | ” 括起来,如 |1_test|
有哪些属性?
CODE 属性:用于定义代码段
DATA 属性:用于定义数据段
READONLY 属性:指定本段为只读
READWRITE 属性:指定本段为可读可写
COMMON 属性:该属性定义一个通用的段,不包含任何的用户代码和数据。各源文件中同名的 COMMON 段共享同一段存储单元。
ALIGN 属性:使用方式为 ALIGN 表达式。在默认时, ELF (可执行连接文件)的代码段和数据段是按字对齐的,表达式的取值范围为 0 ~ 31 ,相应的对齐方式为 2 表达式次方。
例子:REA Init , CODE , READONLY,ALIEN = 3 该伪指令定义了一个代码段,段名为 Init ,属性为只读,指定后面的指令为 8 字节对齐。
CODE16、CODE32:
CODE16 伪指令通知编译器,其后的指令序列为 16 位的 Thumb 指令。
CODE32 伪指令通知编译器,其后的指令序列为 32 位的 ARM 指令。
在使用 ARM 指令和 Thumb 指令混合编程的代码里,可用这两条伪指令进行切换,但注意他们只通知编译器其后指令的类型,并不能对处理器进行状态的切换。
ENTRY:
用于指定汇编程序的入口点,在一个完整的汇编程序中至少要有一个 ENTRY (也可以有多个,当有多个 ENTRY 时,程序的真正入口点由链接器指定),但在一个源文件里最多只能有一个 ENTRY (可以没有)。
END:用于通知编译器已经到了源程序的结尾
EQU:用于为程序中的常量、标号等定义一个等效的字符名称,类似于 C 语言中的# define其中 EQU 可用 “ * ” 代替
使用示例:
Test EQU 50 ;定义标号 Test 的值为 50
Addr EQU 0x55 , CODE32 ;定义 Addr 的值为 0x55 ,且该处为 32 位的 ARM 指令。
EXPORT,IMPORT
EXPORT可用 GLOBAL 代替
EXPORT Stest ;声明一个可全局引用的标号Stest
IMPORT Main ;通知编译器当前文件要引用标号Main,但Main 在其他源文件中定义
定义变量:
定义全局变量的 GBLA 、 GBLL 和 GBLS 。
定义局部变量的 LCLA 、 LCLL 和 LCLS 。
对变量赋值的 SETA 、 SETL 、 SETS 。
为通用寄存器列表定义名称的 RLIST
数据定义:
— DCB 用于分配一片连续的字节存储单元并用指定的数据初始化。
— DCW ( DCWU ) 用于分配一片连续的半字存储单元并用指定的数据初始化。
— DCD ( DCDU ) 用于分配一片连续的字存储单元并用指定的数据初始化。
— DCFD ( DCFDU )用于为双精度的浮点数分配一片连续的字存储单元并用指定的数据初始
化。
— DCFS ( DCFSU ) 用于为单精度的浮点数分配一片连续的字存储单元并用指定的数据初
始化。
— DCQ ( DCQU ) 用于分配一片以 8 字节为单位的连续的存储单元并用指定的数据初始
化。
— SPACE 用于分配一片连续的存储单元
— MAP 用于定义一个结构化的内存表首地址
— FIELD 用于定义一个结构化的内存表的数据域
流程指令:
— IF 、 ELSE 、 ENDIF
— WHILE 、 WEND
— MACRO 、 MEND
— MEXIT
伪指令的C语言,伪指令相关推荐
- linux汇编伪指令大全,ARM汇编伪指令
分类: LINUX 2009-10-21 16:39:09 ARM 汇编程序的由机器指令,伪指令和宏指令组成.伪指令不像机器指令那样在处理器运行期间由机器执行,而是汇编程序对源程序汇编期间由汇编程序处 ...
- c语言中 伪指令,汇编语言六大基础伪指令详解
六大伪指令(基础) 1.OFFSET 变量是数据的存放地,对变量最常见的操作是从变量中取出数据和把数据放人变量中. 实现这些操作有直接法和间接法两种方法. 以该寄存器加方括号的形式指明是用寄存器中的内 ...
- c语言 伪指令 if,汇编语言IF、ELSE和DENDIF伪指令
IF 伪指令的后面必须跟一个常量布尔表达式.该表达式可以包含整数常量.符号常量或者常量宏实参,但不能包含寄存器或变量名.仅适用于 IF 和 ENDIF 的语法格式如下: IF expression s ...
- tms320c2000 c语言伪指令,TMS320F240XDSP汇编及C语言多功能控制应用(附光盘)
摘要: 本书以SNF2407M实验开发系统配合CPLD的SNDSP2407P接口,以简易的C语言和快速的汇编语言编写达20个以上的范例实验及多个专题制作,主要内容如下:TMS320LF2407系列MC ...
- 过程定义伪指令proc和宏命令伪指令macro
微机原理与接口技术38讲 过程名:过程入口的符号地址,ret负责返回断点 宏命令伪指令 调整偏移量伪指令 ORG
- c语言中 伪指令,ARM汇编伪指令介绍(1)
ARM汇编伪指令介绍 在ARM汇编语言程序里,有一些特殊的助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,这些特殊指令助记符被称为伪指令,他们所完成的操作称为伪操作.伪指令在源程序中的作 ...
- C语言的变量和汇编中的伪指令,伪指令 尤其EQU DW DB(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪指令是在微机标准版基础上修改的版
微机原理中表明 变量用伪指令DW,DB 单片机中的伪指令EQU C语言中的变量来源与汇编的伪指令(微机和单片机中的作用稍微不同,但是规则机制相同)微机原理中的汇编指令和伪指令是标准的,单片机的指令和伪 ...
- ARM汇编伪指令介绍(全集)
在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符.这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作. 伪指令在源程序中的作用 ...
- att格式汇编指令_ARM汇编伪指令介绍.
符号定义( Symbol Definition )伪指令 符号定义伪指令用于定义 ARM 汇编程序中的变量.对变量赋值以及定义寄存器的别名等操作. 常见的符号定义伪指令有如下几种: - 用于定义全局变 ...
最新文章
- [转]SQL Server 高性能写入的一些总结
- IBatis.Net学习笔记七--日志处理
- mysql查询递增列_mysql在查询结果列表前添加一列递增的序号列(最简)
- 托福试卷真题_托福反复考,反复不过百,你还不知道是谁的问题吗?
- php 利用个人邮箱,利用 Composer 完善自己的 PHP 框架(二)——发送邮件
- java进程内存一直没释放_五分钟彻底搞懂你一直没明白的Linux内存管理
- 虚拟机安装mac os x实战
- mysql将职称列改为工种_MySQL-其他
- 一张“神图”看懂单机/集群/热备/磁盘阵列(RAID)
- python定义变量字符串_Python学习笔记二(变量和字符串)
- Linux在终端搜索的两条命令
- (HoneyView)轻便好用的免费图片浏览器
- ArcGIS 创建格网与图斑数据叠加;频数统计与面积比例计算
- STL模型文件修改软件magics 21.0的安装及使用
- 计算机组成原理总结及知识网图
- 关于kafka中ISR、AR、HW、LEO、LSO、LW的含义详解
- zookeeper应用——集中配置管理系统的实现
- jvm学习——jvm内存区域
- simulink中不能改名_王者荣耀:万格改名教学,空白名、重复名、个性符号名改法技巧!...
- 连接远程电脑主机,pycharm远程调试代码方法
热门文章
- Vivado工具修改仿真波形界面颜色
- 资本追逐之下,为什么说元宇宙的发展是大势所趋?
- Mysql数据库备份和恢复总结
- WPS 关闭 wpscenter.exe 服务
- sun的中文技术论坛
- JavaScript拖拽事件
- Ubuntu 17.10安装NVIDIA显卡驱动后画面撕裂的解决办法
- 控制工程专硕现在属于电子信息类_浙江大学多个学院电子信息专硕合集分析
- 华为mate30lite鸿蒙测试销售,谷歌宣布Mate30禁用GMS服务,华为手机完成鸿蒙系统测试,价格感人...
- 天气预报文字版微信_微信里的励志天气预报(每日天气预报加励志)