文档介绍:一、MCS-51单片机汇编语言的伪指令
伪指令又称汇编程序控制译码指令,属说明性汇编指令。
“伪”字体现在汇编时不产生机器指令代码,不影响程序的执行,仅产生供汇编时用的某些命令,在汇编时执行某些特殊操作。
MCS-51单片机汇编语言程序设计中,常用的伪指令(七条):
ORG—定位伪指令
END—结束汇编伪指令
EQU—赋值伪指令
DB—定义字节指令
DW—定义数据字指令
DS—定义存储区指令
BIT—位定义指令
2-3 汇编语言程序设计方法(一)
1、 ORG addr16
用于规定目标程序段或数据块的起始地址,
设置在程序开始处。
例: Org 0000h
ljmp main
org 0100h
main: …
….
2、汇编结束伪指令 END
告诉汇编程序,对源程序的汇编到此结束。
一个程序中只出现一次,在程序的最末尾。
例: ……
……
end
3、赋值伪指令 EQU
告诉汇编程序,将汇编语句操作数的值赋予本语句的标号。
格式: 标号名称 EQU 数值或汇编符号
“标号名称”在源程序中可以作数值使用,也可以作数据地址、位地址使用。
先定义后使用,放在程序开头。
例:
led_lamp equ
counter equ 100
display_addr equ 2000h 
………….
mov r0, #counter
mov dptr, #display_addr
mov c, led_lamp
程序最末尾
指令ljmp main存放于0000H开始的单元
格式:[标号:] DB 字节数据表
功能:字节数据表可以是多个字节数据、字符串或表达式,它表示将字节数据表中的数据从左到右依次存放在指定地址单元。
1000H
TAB: DB 2BH, 0A0H, ‘A’, 2*4 ;
表示从1000H单元开始的地方存放数据2BH,0A0H,41H(字母A的ASCII码),08H
格式:[标号:] DW 字数据表
功能:与DB类似,但DW定义的数据项为字,包括两个字节,存放时高位在前,低位在后。
1000H
DATA: DW 324AH, 3CH ;
表示从1000H单元开始的地方存放数据32H,4AH,00H ; 3CH(3CH以字的形式表示为003CH)
格式:[标号:] DS 表达式
功能:从指定的地址开始,保留多少个存储单元作为备用的空间。
如: ORG 1000H
BUF: DS 50 ;
TAB: DB 22H ;22H存放在1032H单元。
表示从1000H开始的地方预留50个(1000H~1031H)存储字节空间。
7. 数据地址赋值伪指令XDATA
格式:符号名 XDATA 表达式
功能:将表达式的值或某个特定汇编符号定义为一个指定的符号名,可以先使用后定义,并且用于双字节数据定义。
例如:
DELAY XDATA 0356H
LCALL DELAY ;执行指令后,程序转到0356H单元执行
常见的伪指令
8. 符号定义伪指令EQU或“=”
格式:符号名 EQU 表达式或符号名=表达式
功能:将表达式的值或某个特定汇编符号定义为一个指定的符号名,只能定义单字节数据,并且必须遵循先定义后使用的原则,因此该语句通常放在源程序的开头部分。
  例如:
LEN=10
SUM EQU 21H
…
MOV A,#LEN;执行指令后,累加器A中的值为0AH
…
题意分析、熟悉并了解汇编语言指令的基本格式和主要特点、明确被控对象对软件的要求、设计出算法等。
分配内存工作区及有关端口地址。
画出程序流程图。编写较复杂的程序时,画出程序流程图是十分必要的。程序流程图也称为程序框图,是根据控制流程设计的,它可以使程序清晰,结构合理,便于调试。
编制汇编源程序。
仿真、调试和优化程序。
固化程序。
二、单片机汇编语言程序设计的基本步骤如下
顺序程序:顺序程序是最简单、最基本的程序结构,其特点是按指令的排列顺序一条条地执行,直到全部指令执行完毕为止。
分支程序:分支程序是通过转移指令对相应条件的判断实现改变程序的执行方向的设计方法。
循环程序:在程序中需要反复的执行的程序段,为了避免在程序中多次的编写,可以通过利用条件转移或无条件转移指令来控制程序的执行。
三:单片机汇编语言程序主要的几种程序设计方法:
一、顺序程序
顺序程序是最简单的程序结构,在顺序程序中没有任何的转移指令,以下是一个典型的例子。
例1:字节(双字)加法。将内部RAM 30H开始的4个单元中存放的4字节十六进制数和内部RAM 40H单元开始的4个单