微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计

上传人:E**** 文档编号:89496393 上传时间:2019-05-25 格式:PPT 页数:73 大小:610KB
返回 下载 相关 举报
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计_第1页
第1页 / 共73页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计_第2页
第2页 / 共73页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计_第3页
第3页 / 共73页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计_第4页
第4页 / 共73页
微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计》由会员分享,可在线阅读,更多相关《微机原理与接口技术 教学课件 ppt 作者 何珍祥 第5章 汇编语言程序设计(73页珍藏版)》请在金锄头文库上搜索。

1、本章教学重点和难点: 汇编语言语句的书写格式及运行环境与步骤 汇编语言的数据定义伪指令、符号定义伪指令、段定义伪指令等伪指令 顺序、分支、循环基本程序的设计。 汇编语言程序与C语言程序的调用方法 中断服务程序、模块化程序设计,第5章 汇编语言程序设计,本章教学内容: 5.1 汇编语言简述 5.2 汇编语言的伪指令 5.3 汇编语言程序设计基础 5.4 中断服务程序设计 5.5 模块化程序设计,机器语言:计算机最终能识别并执行的是以二进制代码表示的。 汇编语言:用意义明确的助记符来表示指令的操作码、操作数,对机器的依赖性很大。主要用于编写计算机的系统程序、实时控制程序等。 汇编语言源程序(汇编语

2、言程序):是用汇编语言编写的程序。 计算机必须将汇编语言程序翻译成由机器代码组成的目标程序才能执行。这个翻译过程称为汇编,完成汇编过程的软件就是汇编程序。,5.1 汇编语言简述,面向机器,5.1.1 汇编语言源程序的格式,例,在屏幕上显示“HELLO”并让机器蜂鸣器响一声。,DATA SEGMENT ;数据段部分定义 msg DB 0DHh,0DH,07H,“Hello$“ DATA ENDS SSEG SEGMENT STACK ;堆栈段部分定义 DB 256 DUP(?) SSEG ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:SSEG MAIN

3、PROC FAR PUSH DS MOV AX,0 PUSH AX,MOV AX,DATA ;设置数据段 MOV DS,AX LEA DX,msg ;取字符串地址 MOV AH,09H ;显示字符串, INT 21H RET ;程序结束,返回操作系统 MAIN ENDP CODE ENDS END MAIN ; 源程序结束,1汇编语言程序的一般组成 (1)一个程序由SEGMENT和ENDS等定义成三类段: 数据段:用来定义变量和其他数据; 堆栈段:为程序堆栈操作提供空间; 代码段:存放代码,即程序指令。 一个程序中一定有至少一个代码段;可以没有堆栈段,若没有堆栈段在程序连接时会给出警告信息;也

4、可以定义多个段。 (2)汇编语言源程序的基本结构是分段结构形式。每个逻辑段都有一个名字,叫段名,而且在SEGMENT开始和ENDS结束时的名字必须一致。,(3)每个逻辑段内由若干语句行组成,每个语句行可以是指令性语句、指示性语句或者宏指令。(4)代码段又是由若干个子程序组成。每个子程序以PROC语句开始定义,ENDP语句结束定义。每个子程序也有自己的名字,叫过程名或子程序名,且在PROC开始和ENDP结束时的名字必须一致。 (5)一个程序只有一个起始点。整个源程序以END结束。,2汇编语言语句的类型 汇编语言源程序中的语句可分为五类: (1)指令语句,是能产生目标代码,CPU可执行的能完成特定

5、功能的语句,主要由CPU指令组成。 mov ax,data ;设置数据段 (2)指示性语句,是一种不产生目标代码的语句,仅仅在汇编过程中告诉汇编程序应如何汇编,也叫伪指令语句或命令语句。 data segment ;数据段定义开始 (3)宏指令语句,是一个指令序列,在汇编时凡有宏指令语句的都将用相应的指令序列的目标代码插入。 (4)注释语句,以分号“;” 。 (5)空语句。,3.汇编语言的语句可由四部分组成: 名字 操作码项 操作数项 ;注释 一般来说: 名字是一个符号,表示本条语句的符号地址,可以为标号(Label)和变量(Variable),统称标识符。 操作码项可以是机器指令、伪指令和宏

6、指令的助记符。 操作数项是操作码的操作对象。操作码在完成相应的操作时要求有一系列的操作数。当有两个或两个以上的操作数时,各操作数之间用逗号隔开。 注释字段是以“;”开头的说明部分,可以用英文或者中文书写。注释字段是语句的非执行部分 。,5.1.2 汇编语言的编程环境,1.汇编语言的编程环境 硬件环境:具有基本配置的PC机 软件环境:指支持汇编程序运行和帮助建立汇编语言源程序的一些软件,主要包括: (1)编辑程序(记事本、EDIT.COM) (2)宏汇编程序(MASM.EXE) (3)连接程序(LINK.EXE) (4)调试程序(DEBUG.COM),建立.ASM文件,产生.OBJ文件,-R -

7、D,产生.EXE文件,2.汇编语言程序上机的执行步骤 第一步:用记事本编辑建立.ASM汇编语言源程序文件。,注意:程序的结构与书写格式。,第二步:用MASM程序汇编成.OBJ文件 调用DOS系统进入MASM5.0,输入MASM命令和文件名回车后即可产生.OBJ目标程序文件。,汇编时输出.OBJ,.LST,.CRF三个文件并且显示汇编源程序的正确或错误结果,若出现语法错误,则根据错误提示,用编辑软件重新调出源程序进行修改。,MASM5.0版本介绍,.OBJ.LST.CRF,第三步:用LINK程序把.OBJ文件转化成.EXE文件 输入LINK命令和文件名回车后可输出.EXE等三个文件。,输入LIN

8、K命令和文件名,.EXE .MAP .LIB,没有堆栈段,LINK程序版本介绍,第四步:程序的运行,直接键入文件名。,直接输入文件名,需要时使用DEBUG调试并查看寄存器或存储器单元,5.2 汇编语言的伪指令,伪指令:控制汇编过程的命令,又称为汇编控制命令。 具有数据定义、存储区分配、指示程序的开始与结束等功能,但是没有对应的机器码。将汇编语言源程序翻译为目标程序后,其作用消失。 8086汇编语言中用到的伪指令有: 数据定义伪指令、符号定义伪指令、段定义伪指令、过程定义伪指令、宏处理伪指令、模块定义与连接伪指令、处理器方式伪指令、条件伪指令、列表伪指令和其它伪指令等类别。,5.2.1 符号定义

9、伪指令 包括变量名、标号名、过程名、寄存器名以及指令助记符。常用的有EQU(等值命令)、=(赋值命令)和PURGE(解除定义命令)。 1基本概念 (1)标识符:用来对程序中的常量、变量、记录、结构、段、过程、模块等进行命名。 (2)保留字:80X86中的寄存器名、指令助记符、伪操作命令、表达式运算符、属性操作符等都是系统专用的保留字。,(3)符号:用符号等代替存储单元、端口地址、数据表达式等。常用的有:寄存器、变量、标号、数等。 (4)常量:是固定值(即程序运行期间不变化)就称为常量。包括数字常量和字符常量。在汇编语言中值相对固定不变化的数据一般以符号的形式出现,也叫符号常数。字符常量必须用单

10、引号括起来。 (5)变量:存放在存储单元中的操作数就是变量,因为其值是可改变的。但程序中出现的一般是存储单元地址的符号,或者说是符号地址。具体在后面再讲。 (6)标号:是某条指令所存放单元的符号地址,是转移控制类指令的目标操作数。 (7)过程名:是某个子程序中首条指令所存放单元的符号地址,是调用子程序指令的目标操作数。,2EQU(等值命令) 格式: NAME EQU EXP ;用符号名NAME替代EXP 3=(赋值语句) 同一源程序中同一符号名不能同时用EQU和=来定义。 格式: NAME=EXP 4PURGR(解除定义语句) 解除语句,可以解除原来用EQU语句定义的符号 格式: PURGE

11、符号1,符号N,表达式常出现在语句格式的操作数域。 (1)算术运算符 +、-、*、/和MOD(求余,两数必须为正整数)。 (2)逻辑运算符 AND、OR、NOT、XOR等。逻辑运算符是按位操作的,只能用于数值表达式中,不能用于存储器地址操作数的表达式中。 (3)关系运算符 EQ、NE、LT、GT、LE和GE等六项。计算结果应该是逻辑值:结果为真,表示FFFFH(-1);结果为假,表示0000H(0)。,(4)分析运算符(数值返回运算符) 把特征或存储器操作数地址分解为它的组成部分,如偏移量、段基址和类型等。 有TYPE、LENGTH、SIZE、OFFSET和SEG等五项。 格式: SEG VA

12、R或者LAB 返回指定变量或者标号的偏移地址值。 格式: OFFSET VAR或者LAB 注意:该运算符实际与LEA指令等效。 TYPE类型返回运算符 返回的运算结果是一个数值与存储器操作数类型或者标号类型有固定的对应关系,如表5-1所示。,【例5-14】 V1 DB 1,2,3 V2 DW 1020H,3040H V3 DD 12345678H PF LABEL FAR PN:MOV AH,TYPE V1 ;AH=1 MOV AL,TYPE V2 ;AL=2 MOV DL,TYPE V3 ;DL=4 MOV DH,TYPE PF ;DH=-2 【例5-15】 FEES DW 100 DUP(

13、0) MOV CX,LENGTH FEES 则CX值为100,(5)合成运算符(修改属性运算符) 用来建立或临时改变变量或标号的类型或者存储器操作数的存储单元类型。 有PTR、THIS、SHORT、段超越操作符等几项。 基本格式: 段寄存器名:符号地址 格式: type PTR EXP ;TYPE是要建立或改变的标号或者存储的新的类型。,(6)其他操作符 当前偏移地址运算符。返回该操作符所在标号或者存储单元的有效地址。 格式: 【例5-20】 1000:3124H MOV BX , 则(BX)=3124H LOW和HIGH。字节分离运算符。分别得到一个数值(16位)或地址表达式(16位)的低位

14、和高位字节。 格式: LOW/HIGH VAR LOW/HIGH EXP,各类运算符的优先级别为: 1、() LENGTH SIZE WIDTH MASK 2、: 3、PTR OFFSET SEG TPYE THIS及段操作符 4、HIGE LOW 5、* / MOD SHL SHR 6、+ - 7、EQ NE GT LT GE LE 8、NOT 9、AND 10、OR XOR 11、SHORT,5.2.3 段定义伪指令 1基本概念 在汇编语言源程序中定义逻辑段,常用的有: SEGMENT 、ENDS 、ASSUME 、ORG 。 2SEGMENT/ENDS命令 格式: 段名 SEGMENT

15、定位组合段字类别 ;其它语句 段名 ENDS,5.2.4 过程定义伪指令 过程定义的一般格式如下: 过程名 PROC NEAR/FAR ; RET ;至少有一条返回主程序的指令; 过程名 ENDP,5.3 汇编语言程序设计基础,5.3.1 程序设计的一般步骤 1基本步骤 1) 分析问题,抽象出描述问题的数学模型 2) 确定解决问题的算法或解题思想 3) 绘制流程图和结构图 4) 分配存储空间和工作单元 5) 编制程序 6) 程序静态检查 7) 上机调试,2流程图,3基本控制结构 程序结构可分为三个基本结构:即顺序结构、分支结构和循环结构。 (1)顺序结构:指按语句出现的先后次序执行,没有判断和

16、转移、重复等,顺序结构也叫简单结构。 (2)分支结构:指根据不同情况作出判断和选择,以便执行不同的程序段。 (3)循环结构:是指重复做某些操作,直到出现某个条件为止。可以看出这实际上是顺序结构和分支结构的组合。 (4)过程:实际上它是三种基本结构的组合。在汇编语言里经常把它当做第四种基本控制结构来看待。 (5)程序设计时,应采用“自顶向下,逐步求精” 。,4程序的结束方法 常用的在DOS下返回的方法主要有以下三种: (1)利用INT 20H结束程序 (2)利用标准序结束程序 (3)用DOS功能调用结束程序,5.3.2 程序设计的基本方法,1顺序结构设计 【例5-27】试编制一程序,求出下列公式中Z值,并存放在RESULT单元中。 RESULT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号