单片机是无法识别汇编语言程序的,所以用汇编语言写好程序后,还要用汇编程序将汇编语言程序(以下称作源程序)汇编(翻译)成单片机能识别的机器语言程序(又称目标程序),然后再通过编程器将目标程序写入单片机的程序存储器(ROM)中。
在汇编时,汇编程序会将源程序中的每条汇编语言指令转换成相应的机器指令,如果在汇编时需要汇编程序对源程序进行一些处理,可在源程序中加入一些特殊的指令,由于这些指令只是告诉汇编程序在汇编时如何处理源程序,而并不会被转换成机器指令,故将这些指令称为伪指令。常用的伪指令有下面8条。今天我们先看四条
1, 汇编起始指令(Origin)
汇编起始指令
操作码助记符:ORG
格式:ORG 16位地址
功能:该指令用于指示下一条指令在程序存储器中的起始地址。
举例:ORG 2000H
MOV A,36H
“ORG 2000H”的功能是指示它的下一条指令“MOV A,36H”的起始地址为2000H。
2 定义字节指令(Define Byte)
定义字节指令
操作码助记符:DB
格式:DB 字节内容
功能:该指令用于定义字节内容。
举例:ORG 3000H
DB 45H,36H,56H,7AH
第1行指令的功能是指示它的下一条指令的起始地址为3000H;第2行指令的功能是依次让3000H、3001H、3002H、3003H单元中的数据为45H、36H、56H、7AH,即让(3000H)=45H、(3001H)=36H、(3002H)=56H、(3003H)=7AH。
3 定义字指令(Define Word)
定义字指令
操作码助记符:DW
格式:DW 字内容
功能:该指令用于定义字内容。
举例:ORG 4000H
DW 4510H,3621H,5600H
第1行指令的功能是指示它的下一条指令的起始地址为4000H;第2行指令的功能是依次让4000H、4001H、4002H、4003H、4004H、4005H单元中的数据为45H、10H、36H、21H、56H、00H,即让(4000H)=45H、(4001H)=10H、(4002H)=36H、(4003H)=21H、(4004H)=56H、(4005H)=00H。
4 定义预留存储单元指令(Define Space)
定义预留存储单元指令
操作码助记符:DS
格式:DS 保留单元数目
功能:该指令用于定义在存储器中留出一定数目的存储单元。
举例:ORG 30H
DS 08H
DB 23H,E8H
第1行指令的功能是指示它的下一条指令的起始地址为30H;第2行指令的功能是从30H地址开始,留出30H~37H的8个存储单元;第3行指令的功能是让38H、39H单元中的数据分别为23H、E8H。