单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Home,5.1 汇编语言的程序与语句,5.2 汇编语言的伪指令,5.3 汇编语言程序设计基础,5.汇编语言的程序设计,内容简介,习题解答,重点/难点,Home5.1 汇编语言的程序与语句5.2 汇编语言的伪指令,1,汇编语言是面向微处理器编程的一种高效的程序设计语言,通常用来编写对时间和空间要求较高的程序。首先要求掌握汇编语言的基本结构、语法规则及一些基本要求,然后通过程序实例学习程序设计的基本方法,包括循环、分支和子程序等基本结构,宏汇编技术,DOS功能调用,能够阅读和编写简单的汇编语言程序。初步熟悉和理解中断服务程序、模块化程序的设计方法。,Home,内容简介,5.汇编语言的程序设计,汇编语言是面向微处理器编程的一种高效的程序设计语言,通常,2,Home,汇编语言源程序的书写规则、语句基本格式及程序的分段结构。,常用的伪指令语句的格式、功能及应用。,顺序结构、分支结构、循环结构程序和子程序的基本结构和设计方法。,常用DOS功能调用的方法,包括包括键盘输入、显示输出和系统时间的功能调用。,重点与难点,5.汇编语言的程序设计,Home 汇编语言源程序的书写规则、语句基本格式及程序的分,3,Home,Next,5.1 汇编语言的程序与语句,1,1.汇编语言源程序,机器语言,二进制数形式的指令和数据。,B0 64 是什么意思?这就是机器语言。既不直观,又不易理解和记忆。,助记符,用便于记忆的英语单词表示的指令操作码。它反映了指令的功能和主要特征,便于人们理解和记忆。,MOV AL,64H;很容易记忆理解,这就是,助记符,。,汇编语言,指令助记符,符号地址,标号,伪指令等语言元素的集合以及这些元素使用的规则。,用汇编语言编写的程序叫,汇编语言源程序,。,HomeNext5.1 汇编语言的程序与语句11.汇编语言源,4,5.1 汇编语言的程序与语句,2,汇编程序,源程序的编译程序,汇编程序,汇编语言源程序,机器语言目标程序,汇编语言程序设计与执行过程,汇编语言源程序.ASM,目标文件.OBJ,可执行文件.EXE,汇编,连接,Home,Next,Back,5.1 汇编语言的程序与语句2汇编程序源程序的编译程序汇编程,5,2.汇编语言的语句与格式,Home,Next,Back,3,5.1 汇编语言的程序与语句,汇编语言的语句有两种,:,指令性语句由8086指令助记符构成的语句,指示性语句由伪指令构成的语句,指令性语句,的格式为:,标号:,指令助记符,目的操作数,源操作数,;注释,指示性语句,的格式为:,名字,伪指令,操作数1,操作数2,操作数n,;注释,2.汇编语言的语句与格式HomeNextBack35.1 汇,6,指令性语句与指示性语句的区别,Home,Next,Back,4,5.1 汇编语言的程序与语句,指令性语句,由,CPU,执行,每一条指令性语句都有一条机器码指令与其对应;,指令性语句汇编时生成机器码;,指示性语句,由,汇编程序,执行。它指出汇编程序应如何对源程序进行汇编,如何定义变量、分配存储单元以及指示程序开始和结束等。指示性语句无机器码指令与其相对应。,指示性语句汇编时不生成机器码。,指令性语句与指示性语句的区别HomeNextBack45.1,7,语句的构成元素,Home,Next,Back,5,5.1 汇编语言的程序与语句,标号,指令的符号地址,用来代表指令在存储器中的地址。,只能出现在指令性语句中,标号后应加上冒号。,名字,段、过程、变量的名字,用来代表它们在存储器中的地址。,只能出现在指示性语句中,名字后不加冒号。,指令助记符,8086助记符、伪指令,操作数,即指令的操作对象,注释,以分号开头,可放在指令后,也可单独一行。,注意注解的写法。要写指令(段)在程序中的作用,而不要写指令的操作。,语句的构成元素HomeNextBack55.1 汇编语言的程,8,3.数据项与表达式,6,5.1 汇编语言的程序与语句,常量,二进制数,以B结尾;十进制数;十六进制数,以H结尾;字符串:用引号括起来的1个或多个字符。,标号,指令所在内存单元的符号地址。三个属性:段地址、偏移量、类型(NEAR和FAR)。,变量,即内存中的存储单元或数据区。,三个属性:段地址、偏移量、类型(,BYTE、WORD和DWORD,)。,表达式,常数、寄存器、标号、变量与运算符的组合。有数字表达式和地址表达式两种。表达式中的运算符有6类:算术、逻辑、关系、取地址、属性、杂类。,Home,Back,3.数据项与表达式65.1 汇编语言的程序与语句常量二进,9,由汇编程序执行的指令,它本身不被汇编成机器指令。常用的伪指令有:,Home,Next,1,5.2 汇编语言的伪指令,数据定义伪指令,符号定义伪指令,段定义和段寄存器指定伪指令,过程定义伪指令,结束伪指令,由汇编程序执行的指令,它本身不被汇编成机器指,10,Home,Next,Back,1.数据定义伪指令,2,用于定义变量,即内存单元或数据区。数据定义伪指令的格式为:,变量名 数据定义伪指令 操作数,操作数,,常用的数据定义伪指令有如下几种:,DB 定义,字节,DW 定义,字,DD 定义,双字,操作数可以是常数、变量或表达式,5.2 汇编语言的伪指令,HomeNextBack1.数据定义伪指令2,11,3,2.符号定义伪指令,把一个表达式用一个符号表示,以后凡出现该表达式的地方都可用这个符号表示。类似于C语言中的#define。,符号定义伪指令有两种:,EQU,=,用EQU定义的符号未清除前,不能重新定义。清除EQU定义可用PURGE伪指令。,用”=”定义的符号可在任何时候进行重定义。,二者,均不占用存储空间,仅是给符号赋值,5.2 汇编语言的伪指令,Home,Next,Back,32.符号定义伪指令 把一个表达式用一个符号表,12,4,3.段定义伪指令,汇编语言程序是按段来组织程序和数据的。和存储器的物理段相对应,汇编语言程序中的段称为逻辑段。汇编连接后被映射到物理段中。,三类段:代码(程序)、数据、堆栈,段定义伪指令:,SEGMENT、ENDS、ASSUME、ORG,定义一个段的基本格式:,段名,SEGMENT,定位类型组合方式类别,段名,ENDS,5.2 汇编语言的伪指令,Home,Next,Back,43.段定义伪指令汇编语言程序是按段来组织程序和数据的。和存,13,5,4.ASSUME伪指令,在代码段中,还必须明确段和段寄存器的关系,这由,ASSUME,语句来指定。如,ASSUME CS:code,DS:data,ES:data,语句中的code和data为段名。,这个语句说明:,1.CS将指向名字为code的代码段,2.DS和ES将指向名字为data的数据段,注意,ASSUME伪指令只是告知汇编程序有关段寄存器与段的关系,并没有给段寄存器赋予实际的初值。,5.2 汇编语言的伪指令,Home,Next,Back,54.ASSUME伪指令 在代码段中,还必须,14,6,5.ORG伪指令,ORG规定了段内的指令或数据存放的开始地址(偏移地址的初值),其格式为:,ORG ,表达式的值即为开始地址,从此地址起连续存放程序或数据。,例:ABC SEGMENT,ORG 100H,begin:,ABC ENDS,5.2 汇编语言的伪指令,Home,Back,65.ORG伪指令 ORG规定了段内的指令或,15,Home,Next,1,5.3 汇编语言程序设计基础,1.程序设计的一般步骤,分析问题并建立相应的建立数学模型,确定数学模型的算法,编制程序,程序调试,编写说明文件,HomeNext15.3 汇编语言程序设计基础1.程序设计的,16,Home,Next,2,2.程序设计的基本方法,Home,Next,Back,5.3 汇编语言程序设计基础,顺序结构程序,逐条执行指令语句,分支结构程序,IF-THEN型 也称单纯分支结构。,IF-THEN-ELSE型 也称并行分支结构。,DO-CASE型 也称选择分支结构。,循环结构程序,循环程序初始化,循环体:是要被重复执行的语句,是循环程序的主体。,循环控制:是循环程序设计的关键。,HomeNext22.程序设计的基本方法 HomeNextB,17,Home,Next,3,1.子程序设计与应用时应注意的问题,Home,Next,Back,3.子程序设计与调用技术,子程序的调用与返回,子程序调用与返回通过CALL和RET指令来实现的。,现场的保护与恢复,保护和恢复的内容:主程序正在使用的某些寄存器或存储器单元。,主程序与子程序之间的参数传递,寄存器传递;存储单元传递;堆栈传递,子程序说明文件,HomeNext31.子程序设计与应用时应注意的问题 Hom,18,Home,Next,2.子程序调用技巧,Home,Next,Back,3.子程序设计与调用技术,子程序嵌套,子程序递归,可重入子程序,协同子程序,HomeNext2.子程序调用技巧 HomeNextBac,19,本章小 结,通过本章的学习:,熟悉汇编语言源程序的基本格式,正确运用语句格式来书写程序段。,掌握伪指令的功能和应用,并通过上机操作。,熟悉汇编程序、连接程序和调试程序等软件工具的使用。,掌握源程序的建立、汇编、连接、运行和调试等技能。,Home,Back,5.汇编语言的程序设计,本章小 结HomeBack5.汇编语言的程序设计,20,