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