微机原理与汇编语言程序设计演示文稿课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《微机原理与汇编语言程序设计演示文稿课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 汇编语言 程序设计 演示 文稿 课件
- 资源描述:
-
1、 本章主要教学内容本章主要教学内容.汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念 .伪指令语句的格式、功能及应用伪指令语句的格式、功能及应用.汇编语言源程序书写规则、语句格式及程序分段汇编语言源程序书写规则、语句格式及程序分段.汇编语言源程序的建立、汇编、连接、调试及运行汇编语言源程序的建立、汇编、连接、调试及运行 .程序设计方法程序设计方法第第4章章 汇编语言程序设计汇编语言程序设计 第第4章章 汇编语言程序设计汇编语言程序设计 本章教学目的及要求本章教学目的及要求 l l 理解汇编语言和汇编程序的概念、特点及其应用。理解汇编语言和汇编程序的概念、特点及其应用。l l 掌握汇编语
2、言源程序的书写规则、语句的基本格掌握汇编语言源程序的书写规则、语句的基本格式、程序的分段结构。式、程序的分段结构。l l 熟悉汇编语言的基本表达、伪指令语句及其应用。熟悉汇编语言的基本表达、伪指令语句及其应用。l l 熟悉汇编语言程序的上机运行、调试过程,掌握熟悉汇编语言程序的上机运行、调试过程,掌握基本操作技能。基本操作技能。l l 能够独立编写和分析汇编程序能够独立编写和分析汇编程序1 汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念 第第4章章 汇编语言程序设计汇编语言程序设计2 汇编语言源程序书写格式汇编语言源程序书写格式 3 8086汇编语言中的标识符汇编语言中的标识符、表达
3、式和运算符表达式和运算符 5 DOSDOS功能调用功能调用 4 伪指令语句伪指令语句 6 汇编语言程序设计基础汇编语言程序设计基础 4.1 汇编语言和汇编程序的基本概念汇编语言和汇编程序的基本概念 1、汇编语言 汇编语言是一种介于汇编语言是一种介于机器语言机器语言和和高级语言高级语言之间之间的计算机编程语言,是一种面向机器的语言。它和的计算机编程语言,是一种面向机器的语言。它和机器码有一一对应的关系,所以允许程序员用汇编机器码有一一对应的关系,所以允许程序员用汇编语言直接对寄存器、存储器、语言直接对寄存器、存储器、I/O端口以及端口以及CPU内部内部的许多硬件进行操作,因此用汇编语言可以编写出
4、的许多硬件进行操作,因此用汇编语言可以编写出高质量的程序,用汇编语言编写的程序占用内存少,高质量的程序,用汇编语言编写的程序占用内存少,执行速度快。执行速度快。v机器码指令构成的指令系统叫机器语言(二进机器码指令构成的指令系统叫机器语言(二进制代码)。机器语言是能被计算机识别的惟一制代码)。机器语言是能被计算机识别的惟一语言。语言。例如:例如:MOV AX,im (B8)MOV DX,im (BA)MOV CX,im (B9)MOV BX,im (BB)PUSH AX (50)PUSH DX (52)PUSH CX (51)PUSH BX (53)POP AX (58)POP DX (5A)P
5、OP CX (59)POP BX (5B)汇编语言程序必须先翻译成机器语言汇编语言程序必须先翻译成机器语言程序才能执行。程序才能执行。由汇编语言程序翻译成机器语言程序的过程,由汇编语言程序翻译成机器语言程序的过程,称为称为汇编。汇编。完成汇编过程的系统程序称为完成汇编过程的系统程序称为汇编语汇编语言程序言程序或称为或称为源程序。源程序。汇编汇编语言程序语言程序翻译翻译机器机器语言程序语言程序执行执行2、汇编程序汇编程序 用汇编语言编写的源程序在输入计算机后,需要将其翻用汇编语言编写的源程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程称译成目标程序,计算机才能执行
6、相应指令,这个翻译过程称为汇编,完成汇编任务的程序称为汇编程序。为汇编,完成汇编任务的程序称为汇编程序。有 基 本 汇 编有 基 本 汇 编 A S MA S M(A s s e m b l e rA s s e m b l e r)和 宏 汇 编)和 宏 汇 编 M A S MM A S M(MacroAssemblerMacroAssembler)两种。)两种。汇编程序以汇编语言源程序文件作为输入,并由它产生汇编程序以汇编语言源程序文件作为输入,并由它产生两种输出文件:目标程序文件和源程序列表文件。两种输出文件:目标程序文件和源程序列表文件。目标程序文件经连接定位后由计算机执行;目标程序文
7、件经连接定位后由计算机执行;源程序列表文件将列出源程序、目标程序的机器语源程序列表文件将列出源程序、目标程序的机器语言代码及符号表。言代码及符号表。汇编程序汇编程序vASM 小汇编小汇编vMASM 宏汇编宏汇编推荐两个汇编网站推荐两个汇编网站http:/http:/3、汇编语言源程序的结构汇编语言源程序的结构 一般来说,一个完整的汇编源程序应由三一般来说,一个完整的汇编源程序应由三个程序段组成,即代码段、数据段和堆栈段,个程序段组成,即代码段、数据段和堆栈段,每个段都以每个段都以SEGMENT开始,以开始,以ENDS结束,结束,代码段包含程序要执行的指令;堆栈段用来在代码段包含程序要执行的指令
8、;堆栈段用来在内存中建立一个堆栈区;数据段用来在内存中内存中建立一个堆栈区;数据段用来在内存中建立一个适当容量的工作区,以存放程序中所建立一个适当容量的工作区,以存放程序中所需的数据。需的数据。注意:一个源程序中,代码段是必须的,而数据注意:一个源程序中,代码段是必须的,而数据段和堆栈段可以没有或有其中一个。段定义时段和堆栈段可以没有或有其中一个。段定义时一般最后定义代码段。一般最后定义代码段。STACK SEGMENTPARA STACK STACK DB500 DUP(0)STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTMAIN PROCFAR ASS
9、UMECS:CODE,DS:DATA,ES:DATA,SS:STACK PUSHDS MOVAX,0 PUSHAX MOVAX,DATA MOVDS,AX MOVES,AX RETMAIN ENDPCODE ENDS ENDMAIN定义堆栈段定义堆栈段定义数据段定义数据段定义代码段定义代码段SEGMENTENDSSEGMENTENDSSEGMENTENDSMAIN PROCFARMAIN ENDPENDv例例4-1 编写一个两字相加的程序编写一个两字相加的程序DSEG SEGMENTDATA1 DW 0F865HDATA2 DW 360CHDSEG ENDSESEG SEGMENTSUM DW
10、 2 DUP(?)ESEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:ESEGSTART:MOV AX,DSEGMOV DS,AXMOV AX,ESEGMOV ES,AXLEA SI,SUMMOV AX,DATA1 ADD AX,DATA2MOV ES:SI,AXHLTCSEG ENDSEND START代码段:代码段:CODE数据段:数据段:DATA堆栈段:堆栈段:STACK4.1.2 4.1.2 汇编语言源程序的语句类型和语句格式汇编语言源程序的语句类型和语句格式 1语句类型语句类型 8086宏汇编宏汇编MASM使用的语句可以分成使用的语句可以分成
11、3种类型:种类型:指令语句:这类指令能够产生目标代码,是指令语句:这类指令能够产生目标代码,是CPU可以执行可以执行的能够完成特定功能的语句,主要由机器指令组成。在汇编时的能够完成特定功能的语句,主要由机器指令组成。在汇编时一条指令语句被翻译成对应的机器码,对应着特定的操作。一条指令语句被翻译成对应的机器码,对应着特定的操作。伪指令语句:伪指令语句是为汇编程序和连接程序提供一伪指令语句:伪指令语句是为汇编程序和连接程序提供一些必要控制的管理性语句,它不产生目标代码,仅仅在汇编过些必要控制的管理性语句,它不产生目标代码,仅仅在汇编过程中告诉汇编程序应如何汇编,并完成相应的伪操作。程中告诉汇编程序
12、应如何汇编,并完成相应的伪操作。宏指令语句:宏指令语句是由编程者按照一定的规则来定宏指令语句:宏指令语句是由编程者按照一定的规则来定义的一种较义的一种较“宏大宏大”的指令,可包括多条指令或伪指令的指令,可包括多条指令或伪指令。2 2语句格式语句格式 一般情况下,汇编语言的语句可以由一般情况下,汇编语言的语句可以由以下几以下几部分组成:部分组成:名字名字 操作码操作码 操作数操作数 ;注释;注释 名字是一个符号,它表示本条语句的符号地址。一般名字是一个符号,它表示本条语句的符号地址。一般来说,名字可以是标号和变量,统称为标识符。来说,名字可以是标号和变量,统称为标识符。注意:标号和变量都具备注意
13、:标号和变量都具备3 3种属性种属性段属性、偏移属性及段属性、偏移属性及类型属性。类型属性。操作码可以是机器指令、伪指令和宏指令的助记符。操作码可以是机器指令、伪指令和宏指令的助记符。操作数字段是操作码的操作对象。操作码在完成相应操作数字段是操作码的操作对象。操作码在完成相应的操作时要求有一系列的操作数。当有两个或两个以上的的操作时要求有一系列的操作数。当有两个或两个以上的操作数时,各操作数之间用逗号隔开。操作数时,各操作数之间用逗号隔开。注释字段是以注释字段是以“;”开头的说明部分,可以用英文或开头的说明部分,可以用英文或者中文书写。注释字段是语句的非执行部分者中文书写。注释字段是语句的非执
14、行部分 。4.1.3 80864.1.3 8086汇编语言中的标识符、表达式和运算符汇编语言中的标识符、表达式和运算符1、标识符(标号,变量,名字)标识符(标号,变量,名字)汇编语言每条语句的第一个字段是它的名字字段,名字汇编语言每条语句的第一个字段是它的名字字段,名字可以是标号或变量,这两者又称为标识符。可以是标号或变量,这两者又称为标识符。重点是要掌握其组成规则和它的重点是要掌握其组成规则和它的3个属性。个属性。2、表达式和运算符表达式和运算符 在表达式中,运算符充当着重要的角色。在表达式中,运算符充当着重要的角色。8086宏汇编有算术运算符、逻辑运算符、关系运算符、分宏汇编有算术运算符、
15、逻辑运算符、关系运算符、分析运算符和综合运算符共析运算符和综合运算符共5种。种。下面分别讨论下面分别讨论5种运算符的作用:种运算符的作用:DSEG SEGMENTDATA1 DW 0F865HDATA2 DW 360CHDSEG ENDSESEG SEGMENTSUM DW 2 DUP(?)(?)ESEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,ES:ESEGSTART:MOV AX,DSEGMOV DS,AXMOV AX,ESEGMOV ES,AXLEA SI,SUMMOV AX,DATA1ADD AX,DATA2 MOV ES:SI,AXHLTCSEG
16、 ENDSEND START(1)算术运算符用于完成算术运算,有(加法)、(减法)、(乘法)、(除法)、MOD(求余)、SHL(左移)、SHR(右移)共7种运算。(2)逻辑运算符的作用是对其操作数进行按位操作。逻辑运算符有AND(与)、OR(或)、XOR(异或)和NOT(非)。(3)关系运算符的运算对象是两个性质相同的项目。其结果为:关系成立或不成立。有EQ(相等)、NE(不相等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)共6种。(4)分析运算符是对存储器地址进行运算的。有5个:SEG(求段基值)、OFFSET(求偏移量)、TYPE(求变量类型)、LENGTH(求变量
17、长度)和SIZE(求字节数)。(5)综合运算符可以用来建立和临时改变变量或标号的类型以及存储器操作数的存储单元类型,而忽略当前的属性,所以又称为属性修改运算符。有6个综合运算符:PTR、段属性前缀、SHORT、THIS、HIGH 和LOW。4-2 伪指令语句伪指令语句 在汇编语言中,伪指令是给汇编程序的命令,在汇编过程中由汇编程序进行处理。例如定义数据、分配存储区、定义段及定义过程等都采用伪指令表示。4.2.1 数据定义伪指令数据定义伪指令 数据定义伪指令用来定义一个变量的类型,并将所需要的数据放入指定的存储单元中,也可以只给变量分配存储单元,而不赋予特定的值。1.1.数据定义伪指令的一般格式
18、为:数据定义伪指令的一般格式为:变量名变量名 伪指令伪指令 操作数操作数 ,操作数,操作数 ;注释;注释 2.常用的常用的数据定义伪指令数据定义伪指令 定义字节变量伪指令定义字节变量伪指令DBDB 定义字变量伪指令定义字变量伪指令DWDW 定义双字变量伪指令定义双字变量伪指令DDDD 定义四字变量伪指令定义四字变量伪指令DQDQ 定义十字节变量伪指令定义十字节变量伪指令DTDT例:例:DATA1 DB 5,6,7 DATA2 DW 1,2,1A34H DATA3 DD 5,6,1A34HDATA1050607DATA201000200341ADATA30500000006v定义重复变量伪指令定
19、义重复变量伪指令DUP格式:格式:例例 DATA1DB10 DUP (0);定义;定义DATA1为为10个个“0”组成的字节变量组成的字节变量DATA2DW2 DUP (?)(?);定义;定义DATA2为为2个不确定数值的字变量个不确定数值的字变量DATA3DB4 DUP (1,2 DUP(50H);定义;定义DATA3为(为(1,50H,50H)重复)重复4次共次共12个字个字节的字节变量节的字节变量 DBDWDD变量名变量名n DUP (表达式)(表达式)4.2.2 符号定义伪指令符号定义伪指令 符号定义伪指令的用途是给一个符号重新命符号定义伪指令的用途是给一个符号重新命名,或定义新的类型
20、属性等。这些符号可以包括汇名,或定义新的类型属性等。这些符号可以包括汇编语言的变量名、标号名、过程名、寄存器名以及编语言的变量名、标号名、过程名、寄存器名以及指令助记符等。指令助记符等。常用的符号定义伪指令有常用的符号定义伪指令有EQU、LABLE。4.2.3 段定义伪指令段定义伪指令一个完整的源程序由一个完整的源程序由3个段组成:堆栈段、数据段、个段组成:堆栈段、数据段、代码段。代码段。SEGMENT:定义一个段开始。一个段必须有一个:定义一个段开始。一个段必须有一个名称来标识。名称来标识。ENDS:说明一个段的结束,和:说明一个段的结束,和SEGMENT成对使成对使用。用。格式:格式:段名
21、段名 SEGMENT 定位类型定位类型 组合类型组合类型 类别类别 段名段名 ENDS4.2.4 ASSUME 段分配伪指令段分配伪指令 格式:格式:ASSUME 段寄存器:段名段寄存器:段名 ,段寄存器:段,段寄存器:段名,名,用于说明源程序中定义的段或组由哪个寄存器去寻用于说明源程序中定义的段或组由哪个寄存器去寻址,即建立寄存器与段间的对应关系。址,即建立寄存器与段间的对应关系。例:例:CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKMOV AX,DATAMOV DS,AXCODE ENDS4.2.5 定义过程的伪指令定义过程的伪指令PROC和和EN
22、DP过程:具有一定功能的程序段(相当于一个子程序)过程:具有一定功能的程序段(相当于一个子程序)格式:格式:过程名过程名 PROC 类型类型 RET 过程名过程名 ENDP说明:说明:过程体内应至少有一条过程体内应至少有一条RET指令,以便返指令,以便返回被调用处。一个过程可以调用另一个过程,回被调用处。一个过程可以调用另一个过程,也可以调用过程本身。也可以调用过程本身。举例:举例:FARNEAR一个延时一个延时100ms 的子程序,过程定义为:的子程序,过程定义为:SOFTDLYPROCMOV BL,10DELAY:MOVCX,2801WAIT:LOOPWAITDECBLJNZDELAYRE
23、TSOFTOLYENDPPUSH BXPUSH CXPOP CX POP BX小循环小循环大循环大循环宏定义格式:宏定义格式:宏指令名宏指令名 MACRO 形式参量形式参量1,形参,形参2,ENDMv宏指令名是一个宏调用的依据(必须要写,与标号规宏指令名是一个宏调用的依据(必须要写,与标号规定一致)定一致)v 形式参量表形式参量表 可有可无,可以是一个,也可以有多个,可有可无,可以是一个,也可以有多个,在有多个时,各参量之间应用逗号分开。在有多个时,各参量之间应用逗号分开。v宏定义符宏定义符MACRO和宏定义结束符和宏定义结束符ENDM成对出现。成对出现。v宏体:宏体:MACROENDM之间。
24、之间。宏体宏体4.2.6 宏命令伪指令宏命令伪指令宏调用格式:宏调用格式:宏指令名宏指令名 实参实参1,实参,实参2,宏调用中的实参应与宏定义中的形参一一对应,但宏调用中的实参应与宏定义中的形参一一对应,但在在IBM宏汇编中,数量上不一定一致,若实参多于形宏汇编中,数量上不一定一致,若实参多于形参,则多余部分被忽略,若实参少于形参,则多余的参,则多余部分被忽略,若实参少于形参,则多余的形参按空对待。形参按空对待。例:例:若对若对AL中的数据进行算术左移中的数据进行算术左移4位的操作,在某程位的操作,在某程序中被多次使用,可对该指令组进行宏定义。序中被多次使用,可对该指令组进行宏定义。SHIFT
展开阅读全文