文档介绍:第 4 章汇编语言程序设计
本章内容:
汇编语言的格式
语句行的构成
指示性语句
指令语句
汇编语言程式设计及举例
DATA SEGMENT ;定义数据段
BLOCK DB 43H,0ABH,…
PDATA DB 20 DUP(?)
NDATA DB 20 DUP(?)
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME CS:CODE,DS:DATA ;段寄存器说明
EXP1 PROC FAR ;过程定义,过程名指令属性
START: PUSH DS
MOV AX, 0
PUSH AX
汇编语言的一个实例
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LEA SI,BLOCK
LEA DI,PDATA
LEA BX,NDATA
CLD ;清方向标志
MOV CX,PDATA-BLOCK
GOON: LODSB ;DS:[SI] AL
TEST AL,80H
JNZ MINUS ;非零转移
STOSB ; AL ES:[DI]
(下接右边)
JMP AGAIN
MINUS: XCHG BX,DI
STOSB
XCHG BX,DI
AGAIN:LOOP GOON
RET
EXP1 ENDP
CODE ENDS
END START
名字操作码 操作数 ;注释
各部分之间至少要用一个空格作为间隔,
其中名字是一个符号,它可以是标号或变量,
它是由程序员建立起来的有特定意义的字符
系列,由英文字母、数字及专用字符组成,最
大长度不能超过31个,且不能由数字打头,不
能用保留字(如寄存器名,指令助记符,伪指令)。
由这个实例可知,每一语句行由4部分组成:
8086汇编语言源程序的格式
8086的汇编语言的源程序是分段的,由若干个段形成一个源程序。源程序的一般格式为:
NAME1 SEGMENT
语句
┇
语句
NAME1 ENDS
NAME2 SEGMENT
语句
┇
语句
NAME2 ENDS
┇
END〈标号〉
每一个段有一个名称,以符号SEGMENT作为段的开始,以语句ENDS作为段的结束。这两者都必须有名称,而且名称必须相同。
由若干个段组成一个源程序,整个源程序以语句END作为结束。
总之,8086的源程序是由若干段组成的,而一个段又是由若干个语句行组成的。所以,语句行是汇编语言源程序的基础。
语句行是由标记(Token)及分隔符按照一定的规则组织起来的,标记是IBM宏汇编源程序的最小的、有意义的单位。
语句行的构成
标记
IBM宏汇编的字符集
界符(delimiters)
常量 constants
标识符 identifiers
保留字 reserved words
ment
IBM宏汇编的字符集
IBM宏汇编中所使用的字符集仅是ASCII和EBCDIC(扩展的BCD码)字符集的一个子集。它由以下几部分组成:
(1) 字母
包含大写的英文字母: ABCD…XYZ;
小写的英文字母: abc…xyz。
(2) 数字
阿拉伯数字: 0123456789。
(3) 特殊字符
可打印字符如图4-1中所示。
非打印字符有: 空格、制表符(TAB键)、回车和换行。
若在源程序中包含任何不属于上列字符集中的字符,则汇编程序就把它们作为空格处理。
虽然字符“&”是字符集中的一个字符,但紧跟在回车换行之后的符号“&”是代表一个连续行,所以,汇编程序也把它当做空格处理。