前言
伪指令是在编译阶段发挥作用的,由汇编器(MASM、TASM等)来解释。伪指令 (directive) 是嵌入源代码中的命令,由汇编器识别和执行。伪指令不在运行时执行,但是它们可以定义变量、宏和子程序;为内存段分配名称,执行许多其他与汇编器相关的日常任务。
一、定义
单片机是无法识别汇编语言程序的,所以用汇编语言写好程序后,还要用汇编程序将汇编语言程序(以下称作源程序)汇编(翻译)成单片机能识别的机器语言程序(又称目标程序),然后再通过编程器将目标程序写入单片机的程序存储器(ROM)中。
在汇编时,汇编程序会将源程序中的每条汇编语言指令转换成相应的机器指令,如果在汇编时需要汇编程序对源程序进行一些处理,可在源程序中加入一些特殊的指令,由于这些指令只是告诉汇编程序在汇编时如何处理源程序,而并不会被转换成机器指令,故将这些指令称为伪指令。
默认情况下,伪指令不区分大小写。例如,.data,.DATA 和 .Data 是相同的。
二、与指令的区别
1、含义不同:
伪指令告诉汇编程序进行什么操作,仅仅在汇编时有效,比如变量的定义,内存空间的分配,指令是机器运行对应机器的一个动作,只有汇编通过,机器才能运行。指令是在执行阶段发挥作用的,由CPU(Intel、AMD等)来执行。
2、作用不同:
单片机中指令是对应CPU的可执行代码,在编译时会分配存储单元,运行时CPU按指令指引的方向和功能执行。伪指令是不可执行代码,一般起辅助作用,是为编译系统服务的,编译时不会分配存储单元,只是按伪指令的功能定位程序数据或指令位置。