文档介绍:第7章汇编语言的基本语法
Assemble Language
一种面向机器的程序设计语言,是一种用符号表示的低级程序设计语言(机器语言的符号化描述),通常是为特定计算机或计算机系列专门设计的。
Assemble Language
用汇编语言编写的程序不能由机器直接执行,而必须经汇编程序翻译成机器语言程序。汇编语言指令与翻译成的机器语言指令之间基本是一一对应的关系。
汇编过程示意:
采用汇编语言进行程序设计的优点:
可充分利用机器的硬件功能和结构特点,加快程序的执行速度,减少目标程序所占用的存储空间。
常用来编写实时控制程序、实时通信程序,有时也用来编制某些系统软件程序。
缺点:
1. 编程效率低(与人们描述计算过程的需要差距大);
2. 与机器硬件的具体结构联系过于紧密
——在一种结构的机器上开发的程序极难移植到另一种不同结构的机器上去。
示例程序
DATA SEGMENT ;数据段
NUM DW 0011101000000111B
NOTES DB ‘The result is :’, ’$’
DATA ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX, DATA
MOV DS,AX
MOV DX,OFFSET NOTES ;显示提示信息
MOV AH,9H
INT 21H
MOV BX,NUM ;将数装入BX
MOV CH,4 ;CH作循环计数器
示例程序(续)
ROTATE : DISPLAY:
MOV CL, 4 ;CL中放移位位数 MOV DL, AL ;显示16进制数
ROL BX,CL MOV AH,2
MOV AL,BL INT 21H
AND AL,0FH ;AL中为一位16进制数 DEC CH
ADD AL,30H ;转换为ASCII码值 JNZ ROTATE
CMP AL,’9’;是0~9的数码? MOV AX,4C00H;返回DOS
JLE DISPLAY INT 21H
ADD AL,07H ;在A~F之间 CODE ENDS ;代码段结束
END BEGIN ;模块结束
堆栈段定义格式
STACK SEGMENT STACK
STA DB 50 DUP (?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS, AX
MOV SP,TOP
:
CODE ENDS
END START
汇编语言源程序的组成
1. 伪指令语句和指令语句
汇编语言源程序中除了包含真正的指令外,还应包含说明性的“指令”。这些说明性的“指令”是面向汇编程序和连接程序的,称为伪指令。
(MASM )规定,汇编语言源程序的每行只能写一个语句: 指令语句或伪指令语句。行长不能超过128个字符。每个语句最多可由四个字段组成: 名字字段、操作字段、操作数字段和注释字段。
伪指令语句是说明性语句,其格式为:
[名字]伪指令说明符[参数表达式1[,参数表达式2[,……]]][;注释]
其中,伪指令说明符(伪指令名)是伪指令语句中不可缺少的主体,其余部分(方括号中的内容)有时可省略。
名字可为段名、过程名、变量名、符号名(或常量名)、宏名、结构名、记录名等。
例:
A DB 20H,30H ; 注释