伪指令

伪指令

伪指令是用于告诉汇编程序如何进行汇编的指令。这里指的是MDK下的伪指令与GNU下的微指令不一样。

一、常见伪指令

【area】定义一个代码段或者数据段

格式:area  段名 属性1,属性2……

段名:code:代码段、data:数据段

属性:readonly:只读、readwrite、align[4] 4字节对齐、code32  4字节、code16

【entry】汇编程序的入口点,

一个完整的汇编程序至少要有一个entry,一个文件中最多有一个entry,也可以没有,如果有多个entry,由链接器指定哪个是程序的入口点

【end】程序的结尾

【EQU】定义一个变量,相当于c语言中的define

【export】声明一个全局的标号

【import】通知编译器,要使用的标号在其他的源文件中定义,相当于c语言中的extern 

 

二、符号定义伪指令

gbla 、gbll 、gbls

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

GBLL伪操作声明一个全局的逻辑变量,并将其初始化成{FALSE}。

GBLS伪操作声明一个全局的串变量,并将其初始化为空串""。

lcla、lcll  、lcls

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

GBLL伪操作声明一个局部的逻辑变量,并将其初始化成{FALSE}。

GBLS伪操作声明一个局部的串变量,并将其初始化为空串""。

seta 、setl 、sets

设置变量具体值

示例代码如下:

gbla  test1

test1 seta  0xaa

gbll test2

test2 setl {true}

gbls test3

test3 sets  "testing"

 

dcb 、dcw 、dcd 、dcfd 、dcfs 、dcq 、space 、map filed

dcb  类似于定义一个char数组,用于分配一片连续的字节存储单元,

space  类似于mallocfen分配一片连续的内存区域并初始化为0

filed  类似于一个结构体

其他暂时不必了解。

三、控制伪指令

【IF】

if 逻辑表达式

指令序列

else

指令序列

Endif

【while】

while

指令语句

wend

 


猜你喜欢

转载自blog.csdn.net/weixin_42048417/article/details/80601598
今日推荐