4.第四章 汇编语言程序设计及其运行.ppt





《4.第四章 汇编语言程序设计及其运行.ppt》由会员分享,可在线阅读,更多相关《4.第四章 汇编语言程序设计及其运行.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第四四章章汇编语言的基本表达及其运行汇编语言的基本表达及其运行本章主要教学内容本章主要教学内容 l l汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念l l汇编语言源程序书写规则、语句格式及程序分段汇编语言源程序书写规则、语句格式及程序分段l l伪指令语句的格式、功能及应用伪指令语句的格式、功能及应用 l lDOS系系统统功能功能调调用和用和BIOS中断中断调调用用 l l汇编语言源程序的建立、汇编、连接、调试及运行汇编语言源程序的建立、汇编、连接、调试及运行第四章第四章汇编语言程序设计及其运行汇编语言程序设计及其运行本章教学目的及要求本章教学目的及要求理解汇编语言和汇编程序的概念、
2、特点及其应用。理解汇编语言和汇编程序的概念、特点及其应用。掌握汇编语言源程序的书写规则、语句的基本格掌握汇编语言源程序的书写规则、语句的基本格式、程序的分段结构。式、程序的分段结构。熟悉汇编语言的基本表达、伪指令语句及其应熟悉汇编语言的基本表达、伪指令语句及其应用。用。熟悉汇编语言程序的上机运行、调试过程,掌握熟悉汇编语言程序的上机运行、调试过程,掌握基本操作技能。基本操作技能。4.14.1汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念第四章第四章 汇编语言程序设计及其运行汇编语言程序设计及其运行4.24.2汇编语言源程序书写格
3、式汇编语言源程序书写格式汇编语言源程序书写格式汇编语言源程序书写格式 4.34.3 80868086汇编语言中的标识符汇编语言中的标识符汇编语言中的标识符汇编语言中的标识符、表达式和运算符表达式和运算符表达式和运算符表达式和运算符 4.64.6汇编语言程序设计汇编语言程序设计汇编语言程序设计汇编语言程序设计4.44.4伪指令语句伪指令语句伪指令语句伪指令语句 4.74.7汇编语言程序上机过程汇编语言程序上机过程汇编语言程序上机过程汇编语言程序上机过程 4.5DOS4.5DOS系统功能调用和系统功能调用和系统功能调用和系统功能调用和BIOSBIOS中断调用中断调用中断调用中断调用4.1汇编语言和
4、汇编程序的基本概念汇编语言和汇编程序的基本概念 4.1.1 汇编语言 汇编语言是一种面向CPU指令系统的程序设计语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址,因而易记、易读、易修改,给编程带来很大方便。用汇编语言编写的程序能够直接利用硬件系统的特性,直接对位、字节、字、寄存器、存储单元、I/O端口等进行处理,同时也能直接使用CPU指令系统和各种寻址方式编制出高质量的程序,这种程序不但占用内存空间少,而且执行速度快。4.1.2汇编程序汇编程序 用汇编语言编写的源程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程称为汇编,完成汇编任务的程
5、序称为汇编程序。有 基 本 汇 编 ASM(Assembler)和 宏 汇 编MASM(MacroAssembler)两种。编缉程序 PROG.ASM 汇编程序 PROG.OBJ 连接程序 PROG.EXE源文件源文件ASM目的文件目的文件LINK可执行文件可执行文件目录目录4.2汇编语言源程序书写格式汇编语言源程序书写格式4.2.1 汇编语言源程序的分段结构 通常,一个汇编源程序应该由3 3个逻辑段组成个逻辑段组成,即数据段数据段、堆栈段堆栈段和代码段代码段。每个逻辑段以SEGMENT语句开始,以ENDS语句结束。整个源程序以END语句结束。NAME1 SEGMENT 语句 NAME1 EN
6、DS NAME2 SEGMENT 语句 NAME2 ENDS END 每个段以符号每个段以符号SEGMENT作为段的开始,以作为段的开始,以ENDS作为段的结束,两者都必须有名字,而作为段的结束,两者都必须有名字,而且名字必须相同。且名字必须相同。以下面具体例子说明一个完整汇编语言程序以下面具体例子说明一个完整汇编语言程序(2(2字相加字相加)的结构的结构 DATA SEGMENT ;DATA SEGMENT ;定义数据段定义数据段定义数据段定义数据段 DATA1 DW 0F865H ;DATA1 DW 0F865H ;被加数被加数被加数被加数 DATA2 DW 360CH ;DATA2 DW
7、 360CH ;加数加数加数加数 DATA ENDS ;DATA ENDS ;数据段结束数据段结束数据段结束数据段结束;EDATA SEGMENT ;EDATA SEGMENT ;定义附加段定义附加段定义附加段定义附加段 SUM DW 2 DUP(?);SUM DW 2 DUP(?);定义存和区定义存和区定义存和区定义存和区 EDATA ENDS ;EDATA ENDS ;附加段结束附加段结束附加段结束附加段结束;CODE SEGMENT ;CODE SEGMENT ;定义代码段定义代码段定义代码段定义代码段 ASSUME CS:CODE,DS:DATA,ES:EDATAASSUME CS:C
8、ODE,DS:DATA,ES:EDATA ;段分配伪指令段分配伪指令段分配伪指令段分配伪指令ASSUME,ASSUME,指明以上程序定义指明以上程序定义指明以上程序定义指明以上程序定义 ;的各段由哪个段寄存器寻址的各段由哪个段寄存器寻址的各段由哪个段寄存器寻址的各段由哪个段寄存器寻址.START:MOV AX,DATA START:MOV AX,DATA MOV DS,AX ;MOV DS,AX ;初始化初始化DS DS MOV AX,EDATA MOV AX,EDATA MOV ES,AX ;MOV ES,AX ;初始化初始化ES ES LEA SI,SUM ;LEA SI,SUM ;和的偏
9、移地址和的偏移地址 SI SI MOV AX,DATA1 MOV AX,DATA1 ADD AX,DATA2 ;ADD AX,DATA2 ;两数相加两数相加 MOV ES:SI,AX ;MOV ES:SI,AX ;和和附加段附加段SUMSUM HLT HLT CODE ENDSCODE ENDS END STARTEND START 4.2.2 4.2.2 汇编语言源程序的语句类型和语句格式汇编语言源程序的语句类型和语句格式1语句类型语句类型 8086宏汇编宏汇编MASM使用的语句可以分成使用的语句可以分成3种类型:种类型:指令语句:这类指令能够产生目标代码,是指令语句:这类指令能够产生目标代
10、码,是CPU可以执行的可以执行的能够完成特定功能的语句,主要由机器指令组成。在汇编时一条能够完成特定功能的语句,主要由机器指令组成。在汇编时一条指令语句被翻译成对应的机器码,对应着特定的操作。指令语句被翻译成对应的机器码,对应着特定的操作。指示性语句(伪指令语句):伪指令语句是为汇编程序和连指示性语句(伪指令语句):伪指令语句是为汇编程序和连接程序提供必要控制的管理性语句,它不产生目标代码,仅仅在接程序提供必要控制的管理性语句,它不产生目标代码,仅仅在汇编过程中告诉汇编程序应如何汇编,并完成相应的伪操作。汇编过程中告诉汇编程序应如何汇编,并完成相应的伪操作。宏指令语句:宏指令语句是由编程者按照
11、一定的规则来定义宏指令语句:宏指令语句是由编程者按照一定的规则来定义的一种较的一种较“宏大宏大”的指令,可包括多条指令或伪指令的指令,可包括多条指令或伪指令。2 2语句格式语句格式 一般情况下,汇编语言的语句可以由以下几部分组成:指令性语句:标号标号:操作符 操作数 ;注释 指示性语句:名字 操作符 操作数 ;注释 标号,它表示该指令所在存储单元的符号地址,后边加“:”。名字,通常表示变量名、段名、过程名,后边不加“:”。注意:标号和变量都具备3种属性段属性、偏移属性及类型属性。操作符可以是机器指令、伪指令和宏指令的助记符。操作数字段是操作符的操作对象。操作符在完成相应的操作时要求有一系列的操
12、作数。当有两个或两个以上的操作数时,各操作数之间用逗号隔开。注释字段是以“;”开头的说明部分,可以用英文或者中文书写。注释字段是语句的非执行部分。例如:START:MOV AX,DATA ;指令性语句 DATA1 DB 11H,22H,33H ;指示性语句,定义字节数据,“DB”是伪操作目录目录 4.3 4.3 4.3 4.3 数据项数据项数据项数据项、表达式和运算符表达式和运算符表达式和运算符表达式和运算符4.3.1 4.3.1 数据项数据项 1.1.常量常量(Constant)(Constant)包括包括:数字常量和字符串常量。数字常量和字符串常量。数字常量数字常量:十进制:如:十进制:如
13、:13D 13D 或或1313 二进制二进制:10101110B:10101110B 十十六六进进制制:81H,0F685H(:81H,0F685H(以以字字母母A AF F开开始始的的十十六六进进制制数数 ,前前面面加加“0 0”)字符串常量字符串常量:用单引号括起来的一个或多个用单引号括起来的一个或多个ASCIIASCII码码字符字符.如如ABAB。2.2.标号标号(label)(label)标号不能与助记符或伪指令重名标号不能与助记符或伪指令重名,也不允许数字打头也不允许数字打头.标号标号3 3属性属性:段、偏移量、类型段、偏移量、类型 段属性:标号所在段的段地址,程序引用一个标号,该标
14、号应该在代码段。段属性:标号所在段的段地址,程序引用一个标号,该标号应该在代码段。偏移量:该段起始地址到该标号地址之间的字节数,是偏移量:该段起始地址到该标号地址之间的字节数,是1616位无符号数。位无符号数。类型:近标号类型:近标号NEARNEAR,段内引用,地址为段内引用,地址为2 2字节;远标号字节;远标号FARFAR,其他段引用,其他段引用,地址为地址为4 4字节字节3.3.3.3.变量变量变量变量(variable)(variable)(variable)(variable)变量变量变量变量3 3 3 3属性属性属性属性:段、偏移量、类型段、偏移量、类型段、偏移量、类型段、偏移量、类
15、型 段属性:变量所在段的段地址段属性:变量所在段的段地址段属性:变量所在段的段地址段属性:变量所在段的段地址,变量在存储器的数据段和附变量在存储器的数据段和附变量在存储器的数据段和附变量在存储器的数据段和附 加段。加段。加段。加段。偏移量:该段起始地址到该变量地址之间的字节数。偏移量:该段起始地址到该变量地址之间的字节数。偏移量:该段起始地址到该变量地址之间的字节数。偏移量:该段起始地址到该变量地址之间的字节数。类型:类型:类型:类型:BYTEBYTEBYTEBYTE(字节),字节),字节),字节),WORDWORDWORDWORD(字),字),字),字),DWORDDWORDDWORDDWO
16、RD(双字)双字)双字)双字)等等等等注意:注意:注意:注意:变量类型要与指令要求相符,如:变量类型要与指令要求相符,如:变量类型要与指令要求相符,如:变量类型要与指令要求相符,如:MOV AXMOV AXMOV AXMOV AX,VAR1 VAR1 VAR1 VAR1 ;VAR1VAR1VAR1VAR1必须定义为字变量必须定义为字变量必须定义为字变量必须定义为字变量 MOV BLMOV BLMOV BLMOV BL,VAR2 VAR2 VAR2 VAR2 ;VAR2VAR2VAR2VAR2必须定义为字节变量必须定义为字节变量必须定义为字节变量必须定义为字节变量 变量名指向该变量数据区的首地址
17、,如:变量名指向该变量数据区的首地址,如:变量名指向该变量数据区的首地址,如:变量名指向该变量数据区的首地址,如:NUM DB 11HNUM DB 11HNUM DB 11HNUM DB 11H,22H22H22H22H,33H 33H 33H 33H MOV AL,NUM+2 ;MOV AL,NUM+2 ;MOV AL,NUM+2 ;MOV AL,NUM+2 ;把把把把33H33H33H33H AL AL AL AL 4.3.2表达式和运算符表达式和运算符在表达式中,运算符充当着重要的角色。8086宏汇编有:算术运算符、逻辑运算符、关系运算符、分析运算符和综合运算符共5种。下面分别讨论5种运
18、算符的作用:(1)算术运算符算术运算符:(加法)、(减法)、(加法)、(减法)、*(乘法)、(除法)、(乘法)、(除法)、MODMOD(求余)、求余)、SHLSHL(左移)、左移)、SHRSHR(右移)共右移)共7 7种种 【例例】数组定义如下数组定义如下:ARRAY DB 1,2,3,4,5,6,7,8ARRAY DB 1,2,3,4,5,6,7,8 TRY DB 20 TRY DB 20 MOV AX,30*5 ;MOV AX,30*5 ;两两整数相乘的积整数相乘的积AX AX MOV CX,(TRYMOV CX,(TRYARRAY);ARRAY);数组长度数组长度 CX CX 汇编时汇编
19、时,计算表达式计算表达式,形成指令如下形成指令如下:MOV AX,150 MOV AX,150 MOV CX,8 MOV CX,8表达式表达式呀呀!原来原来,表达式的计算表达式的计算,在汇编时就完成了在汇编时就完成了(2 2 2 2)逻辑运算符)逻辑运算符)逻辑运算符)逻辑运算符:逻辑运算符的作用是对其操作数进行逻辑运算符的作用是对其操作数进行按位操作。逻辑运算符有按位操作。逻辑运算符有ANDAND(与)、与)、OROR(或)、或)、XORXOR(异或)和异或)和NOTNOT(非)。非)。【例例】MOV AL,NOT 0FFH MOV AL,NOT 0FFH MOV CH,8CH XOR 73
20、H MOV CH,8CH XOR 73H 汇编时汇编时,计算表达式计算表达式,形成指令如下形成指令如下:MOV AL,0 MOV AL,0 MOV CH,0FFH MOV CH,0FFH逻辑运算符与逻辑运算符与8086指令助指令助记符记符AND、OR、XOR、NOT的符号完全相同,二的符号完全相同,二者会混淆吗?者会混淆吗?放心吧,不会的!放心吧,不会的!运算符是在汇编时进行的,运算符是在汇编时进行的,而指令助记符是在程序执行而指令助记符是在程序执行时进行的时进行的(3 3 3 3)关系运算符关系运算符关系运算符关系运算符:关系运算符的运算对象是两个性质相同的项目。关系运算符的运算对象是两个性
21、质相同的项目。关系运算符的运算对象是两个性质相同的项目。关系运算符的运算对象是两个性质相同的项目。其结果为:关系成立或不成立。有其结果为:关系成立或不成立。有其结果为:关系成立或不成立。有其结果为:关系成立或不成立。有EQEQEQEQ(相等)、相等)、相等)、相等)、NENENENE(不相等)、不相等)、不相等)、不相等)、LTLTLTLT(小于)、小于)、小于)、小于)、GTGTGTGT(大于)、大于)、大于)、大于)、LELELELE(小于或等于)、小于或等于)、小于或等于)、小于或等于)、GEGEGEGE(大于或等于)大于或等于)大于或等于)大于或等于)共共共共6 6 6 6种。种。种。
22、种。若结果为真,输出全若结果为真,输出全若结果为真,输出全若结果为真,输出全1 1 1 1(0ffH 0ffH 0ffH 0ffH 或或或或0ffffH0ffffH0ffffH0ffffH),),),),若结果为假,输出若结果为假,输出若结果为假,输出若结果为假,输出全全全全0 0 0 0。通常关系运算符通常关系运算符与与与与逻辑运算符组合起来使用逻辑运算符组合起来使用,见下面例子见下面例子:【例例例例】MOV AX,10H GT 16MOV AX,10H GT 16MOV AX,10H GT 16MOV AX,10H GT 16 MOV BL,6 EQ 110B MOV BL,6 EQ 11
23、0B MOV BL,6 EQ 110B MOV BL,6 EQ 110B MOV CX,(PORT LT 5)AND 100)OR(PORT GE 5)AND 200)MOV CX,(PORT LT 5)AND 100)OR(PORT GE 5)AND 200)MOV CX,(PORT LT 5)AND 100)OR(PORT GE 5)AND 200)MOV CX,(PORT LT 5)AND 100)OR(PORT GE 5)AND 200)汇编后汇编后汇编后汇编后,形成指令如下形成指令如下形成指令如下形成指令如下:MOV AX,0 MOV AX,0 MOV AX,0 MOV AX,0 M
24、OV BL,0FFH MOV BL,0FFH MOV BL,0FFH MOV BL,0FFH MOV CX,100 ;MOV CX,100 ;MOV CX,100 ;MOV CX,100 ;当当当当端口地址端口地址端口地址端口地址PORT PORT PORT PORT 5 5 5 5 时时时时 或或或或 MOV CX,200 ;MOV CX,200 ;MOV CX,200 ;MOV CX,200 ;当端口地址当端口地址当端口地址当端口地址PORT PORT PORT PORT 5 5 5 5 时时时时(4 4 4 4)分析运算符)分析运算符)分析运算符)分析运算符:分析运算符也称数值返回运算符
25、分析运算符也称数值返回运算符分析运算符也称数值返回运算符分析运算符也称数值返回运算符,是对存储器地是对存储器地是对存储器地是对存储器地址进行运算的。有址进行运算的。有址进行运算的。有址进行运算的。有5 5 5 5个:个:个:个:OFFSETOFFSETOFFSETOFFSET(求偏移量)、求偏移量)、求偏移量)、求偏移量)、SEGSEGSEGSEG(求段基值)、求段基值)、求段基值)、求段基值)、TYPETYPETYPETYPE(求变量类型)、求变量类型)、求变量类型)、求变量类型)、LENGTHLENGTHLENGTHLENGTH(求变量长度)和求变量长度)和求变量长度)和求变量长度)和SI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4.第四章 汇编语言程序设计及其运行 第四 汇编语言 程序设计 及其 运行

限制150内