微机原理及应用(吴宁)第四章讲述

上传人:最**** 文档编号:117183170 上传时间:2019-11-18 格式:PPT 页数:158 大小:1.83MB
返回 下载 相关 举报
微机原理及应用(吴宁)第四章讲述_第1页
第1页 / 共158页
微机原理及应用(吴宁)第四章讲述_第2页
第2页 / 共158页
微机原理及应用(吴宁)第四章讲述_第3页
第3页 / 共158页
微机原理及应用(吴宁)第四章讲述_第4页
第4页 / 共158页
微机原理及应用(吴宁)第四章讲述_第5页
第5页 / 共158页
点击查看更多>>
资源描述

《微机原理及应用(吴宁)第四章讲述》由会员分享,可在线阅读,更多相关《微机原理及应用(吴宁)第四章讲述(158页珍藏版)》请在金锄头文库上搜索。

1、第4章 汇编语言程序设计 4.1 程序设计语言概述 4.2 汇编语言的程序结构与语句形式 4.3 汇编语言的伪指令语句 4.4 汇编语言程序设计基础 4.5 模块化程序设计技术 4.6 实用程序设计举例 本章重点: 源程序基本结构、 汇编语言的语法规则 、 程序设计方法。 第4章 汇编语言程序设计 uu程序是一组为完成某种功能而按一定顺序(由算法确定)编排程序是一组为完成某种功能而按一定顺序(由算法确定)编排 的的指令序列指令序列。 uu本章将首先介绍本章将首先介绍80868086宏汇编语言的基本语法及常用伪指令,然宏汇编语言的基本语法及常用伪指令,然 后用实例说明后用实例说明80868086

2、宏汇编语言源程序的设计方法。宏汇编语言源程序的设计方法。 4.1 程序设计语言概述 机器语言:当指令和数据都用二进制代码表示时, 计算机能够直接识别与执行,因而称 之为机器语言。 高级语言:是完全独立于机器的通用语言,效率低。 面向过程、面向对象,必须译成机器语言 。 汇编语言:汇编语言是一种用符号表示的、面向CPU 指令系统的程序设计语言。 是用指令的助记符、符号地址、标号等 编写程序的语言 。 1.3种语言 汇编语言程序是机器语 言程序的符号表示 用汇编语言编写程序能够: 优点:程序目标代码占用内存少,执行程序目标代码占用内存少,执行速度快速度快,效率高效率高,具,具 有有实时性实时性.

3、. 缺点:不够直观,开发周期长,容易出错,对编程人员要求缺点:不够直观,开发周期长,容易出错,对编程人员要求 熟悉硬件熟悉硬件, , 程序依赖于机器硬件,其通用性和移植性都较差。程序依赖于机器硬件,其通用性和移植性都较差。 直接利用硬件系统的特性直接利用硬件系统的特性(如寄存器、标志、中断系统等(如寄存器、标志、中断系统等 ),直接对位、字节、字、寄存器或存储单元、),直接对位、字节、字、寄存器或存储单元、I/OI/O端口进行端口进行 处理,同时也能直接使用处理,同时也能直接使用CPUCPU指令系统提供的各种寻址方式,指令系统提供的各种寻址方式, 编制出高质量的程序。程序设计人员可以充分利用机

4、器硬件的编制出高质量的程序。程序设计人员可以充分利用机器硬件的 全部功能,发挥机器的长处。全部功能,发挥机器的长处。 第4章 汇编语言程序设计 第4章 汇编语言程序设计 u汇编语言程序的效率通常高于高级语言程序。所以在节省内 存空间和提高程序运行速度的重要场合,如实时控制和实时通如实时控制和实时通 信信,常常使用汇编语言来编制的。现在的微机系统中,底层的 一些功能即计算机计算机系统程序系统程序仍然靠汇编语言程序来实现。例如 机器的自检、系统初始化、实际的输入输出操作,至今仍然是 用汇编语言编制的程序来完成。 uu相对于汇编语言,相对于汇编语言,高级语言高级语言的的编程方便快捷,通用性和移植编程

5、方便快捷,通用性和移植 性都较好性都较好,在一些涉及大量数据处理、人机界面等设计任务的,在一些涉及大量数据处理、人机界面等设计任务的 应用程序中,采用高级语言编程更为合适。应用程序中,采用高级语言编程更为合适。 uu现在许多高级语言都设置有与汇编语言程序接口的功能,以现在许多高级语言都设置有与汇编语言程序接口的功能,以 便于提高高级语言程序的效率。便于提高高级语言程序的效率。 第4章 汇编语言程序设计 汇编语言源程序 机器语言程序 (目标代码) 汇编(可由汇编程序完成 ) 高级语言源程序 编译或解释 (可由编译程序完成) 从源程序获得目标程序的过程 v为了能顺利完成汇编,用户必须为汇编程序提供

6、一 些额外的、与硬件有关的信息. v如:程序使用的变量应分别存放在内存的哪个单元 、堆栈应从内存的什么地址开始等等。 第4章 汇编语言程序设计 (2)汇编程序分类 基本汇编 ASM 宏汇编 MASM(有各种版本,还支持宏操作,条件汇 编,协处理命令等) TASM(Turbo Assembler)性能同MASM,速度更快 OPTASM(Optimizing Assembler) 一种优化的MASM Microsoft 公司 2. 几种汇编程序 (1)汇编程序的作用 将源程序翻译成机器语言程序。 按用户要求自动分配存储区域(如程序区、数据区等) 。 自动地把各种进制数 二进制数。 把字符 ASCI

7、I码。 计算表达式的值。 自动对源程序进行检查,指出语法错误(如非法格式、未 定义的助记符、标号、漏掉操作数等)。 上机环境 硬件 系统软件 应用软件 操作系统:DOS系统 编辑器: EDIT.exe 编译程序:MASM.exe 连接程序:LINK.exe 调试程序:DEBUG.exe 用户开发的程序:ABC.exe等 CPU、存储器(ROM、RAM)、I/O接口、输入、输出设备 3. 汇编语言程序的上机与处理过程 第4章 汇编语言程序设计 汇编语言上机过程 D:EDIT ABC.asm D:MASM ABC 有语法错,回EDIT下改该程序 D:LINK ABC 有错,回在EDIT下改程序 D

8、:ABC 运行结果错,回EDIT下改程序 或在DEBUG下调试,找原因。 D:DEBUG ABC.exe 编辑源程序 EDIT ABC.ASM 汇编源程序 MASM ABC.ASM 形成目标程序 ABC.OBJ 连接目标程序 LINK ABC.OBJ 有连接错误信息? 形成可执行程序 ABC.EXE 装入可执行程序到内存 , 并执行 D:subABC 下一程序 用DEBUG 调试可执行程序 D:sub DEBUG ABC.EXE 找到原因 Y N Y N N Y N 有汇编错误信息 ? Y 运行结果正确 ? 用DEBUG调试程序查错 ? 第4章 汇编语言程序设计 4.2 汇编语言的程序结构与语

9、句格式 4.2.1 汇编语言源程序的框架结构(书P141) 1. 源程序由若干个逻辑段组成 每段由伪指令SEGMENT开始、由ENDS结束。 通常有:代码段(必不可少) 堆栈段建立一个堆栈区,以存放中断时的断 点地址,子程序调用时断点地址及子程序 间传递参数。 数据段和附加数据段用来在内存中建立一个 适当容量的工作区用以存放数据。 语法语句和程序结构必须遵循的规则。 源程序按其编译器能够理解的语法编写方可。 第4章 汇编语言程序设计 一、源程序的结构特点 按逻辑段组织源程序。包括代码段、堆栈段、数据段和附加段等 。 第4章 汇编语言程序设计 段 (P141) ; 段名1SEGMENT; 一个段

10、的开始 语句1 语句2 段名1ENDS; 一个段的结束 ; 段名2SEGMENT; 另一个段的开始 段名2ENDS; 另一个段的结束 ; ; 其它段 ; ENDSTART; 源代码结束 8086/8088/80286允许同时使用以上4种类型的段: 代码段 CS 、堆栈段 SS 、数据段 DS 和附加段 ES 一个源程序中每种类型的段可不止使用一个,如:n个数据段。 第4章 汇编语言程序设计 在8086/8088和实地址方式下,每段的最大长度均为64KB; 2. 在代码段起始处, 用ASSUME伪指令说明各个段Reg与逻辑段的关系,并在程序 起始处设置段Reg的初值(代码段CS除外)。 3. 每

11、段由若干语句行组成, 每行只有一条语句且不能超过128个字符。 整个源程序以END结束,它通知汇编程序停止汇编。 END后的START标号为程序运行时的起始地址。 4. 每条语句最多由4个字段构成。各字段间用空格分开。 5. 源程序中必须设有返回DOS的指令语句,使程序执行完后返回 DOS系统的命令接受状态。如:标准序法。 第4章 汇编语言程序设计 二、源程序与PC DOS的接口 汇编语言源程序(.ASM)经过汇编转变为目标程序(.OBJ), 当用链接程序对其进行链接和定位时,操作系统为每个用户程序 建立: 一个256字节的程序段前缀区(PSP), 存放用户程序信息。 在PSP的开始处(偏移地

12、址0000H)安排 一条INT 20H 软中断指令。 INT 20H功能 是使系统返回到DOS管理状态。 因此,用户执行程序完后,必须能够转 到PSP起始处执行INT 20H指令。 INT 20H PSP起始 0000H 定位用 户程序 第4章 汇编语言程序设计 定位用户程序 设置DS和ES的值使之指向PSP的开始处, 即PSP的段地址 DS和ES。 将用户程序的段基址、第一条指令的偏移地址设置CS、IP; 同时设置SS、SP。 运行用户程序 保证用户程序执行完后返回DOS的方法 第一种方法:标准序法 将用户程序中的主程序定义为FAR过程,其最后一条指令为RET( 当程序执行到RET时,会将栈

13、顶的两个字分别送IP、CS) 在主程序的开始处将PSP的段地址和偏移地址(DS、ES和0000H) 进栈保护: PUSHDS;保护PSP段地址 MOVAX,0 ;保护偏移0地址 PUSHAX ; 用户程序开始 当用户程序返回时,会返回到DOS(执行INT 20H)。 示例 注:由于DS、ES由 DOS设置,所以在 用户程序开始处应 重新设置DS、ES。 第二种方法:非标准方法 示例 不定义主程序为FAR过程,并去掉标准序。 在代码段结束之前(即CODE ENDS之前)增加两句: MOVAH,4CH INT21H;4CH号的DOS系统功能调用 ; 参考书P402附表,功能:终止当前进程,返回调用

14、进程 或者,代码结束前,增加一句: INT 20H,用于返回DOS 第4章 汇编语言程序设计 4.2.2 汇编语言的语句 源程序是一个语句序列,每条语句规定一个基本操作,语句 序列完成某个特定的操作任务。 一、语句的种类与格式 1. 语句的种类 (1)指令语句:可执行语句,对应CPU指令系统规定的一条指令 。 汇编时,汇编程序为之产生一一对应的机器目标代码。 例:MOVAH,4CH INCBX (2) 伪指令语句 _汇编时给汇编程序提供与硬件有关的汇编信息, 本身并不产生目标代码,CPU不执行。 是指示汇编程序进行汇编的操作。 第4章 汇编语言程序设计 例:MESSAGE DB THIS IS

15、 A SAMPLE PROGRAM. ;定义变量MESSAGE在数据段DATA中的存放形式 。 汇编时,汇编程序将MESSAGE定义为一个字节类 型数据区的首地址,并按字节存储字符串。 MOV BX, OFFSET string 中的 OFFSET (3)宏指令语句 以某个宏名字(伪指令)定义的一段指令序列,汇编时展开 。 宏指令语句是一般性指令语句的扩展。 第4章 汇编语言程序设计 2. 语句格式 指令语句的一般格式: 标号:前缀 指令助记符 操作数;注释 伪指令语句的格式: 名字 伪指令定义符 操作数;注释 uu标识符字段标识符字段 标识符字段由各种有效字符组成,一般表示符号地址,具有标识符字段由各种有效字符组成,一般表示符号地址,具有段基址段基址 、偏移量偏移量、类型类型三种属性。三种属性。 很多情况下标识符字段是语句中的很多情况下标识符字段是语句中的可选部分,主要为便于程序的读写,主要为便于程序的读写 方便而使用。方便而使用。 uu标识符字段通常有标识符字段通常有: : 标号标号 后跟冒号,在程序中作为JMP、LOOP指令的转移目标,与 具体的指令地址相联系。 名字名字 用于定义常量名、变量名、过程名、段名等。 (1) 标号和名字

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

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

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