微型计算机系统 (5).ppt
《微型计算机系统 (5).ppt》由会员分享,可在线阅读,更多相关《微型计算机系统 (5).ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 5 5 章章汇编语言程序设计 第第5 5章章 汇编语言程序设计汇编语言程序设计 本章重点本章重点:结合实例理解汇编语言程序设计的基本步骤;掌握汇编语言程序设计的基本方法;熟练运用循环、分支和子程序的程序设计方法解决问题。本章难点:本章难点:依据所要解决的问题,选择正确的程序设计方法,正确地运用指令编写实用的汇编原程序。汇编语言是一种用助记符来表示指令的操作码和操作数,用标号和符号来代替地址、常量和变量的符号语言。用汇编语言编写的程序不能由机器直接执行,而必须翻译成由机器代码组成的目标程序,这个翻译过程称为汇编。5.1 概述 用来把汇编语言编写的程序自动翻译成目标程序的软件叫汇编程序。汇编
2、程序的建立及汇编过程如图所示。编辑程序编辑程序汇编程序汇编程序连接程序连接程序EXP.ASMEXP.OBJEXP.EXE 8086的汇编语言的源程序是分段的,由若干个段形成一个源程序。源程序的一般格式为:NAME1 SEGMENT语句语句NAME1 ENDSNAME2 SEGMENT语句 语句 NAME2 ENDSEND 5.1 概述 每一个段有一个名字,以符号SEGMENT作为段的开始,以语句ENDS作为段的结束。这两者都必须有名字,而且名字必须相同。由若干个段组成一个源程序,整个源程序以语句END作为结束。5.1 概述 总之,8086的源程序是由若干段组成的,而一个段又是由若干个语句行组成
3、的。所以,语句行是汇编源程序的基础。8086汇编的一个语句行也是由4个部分组成的,即 标号 操作码 操作数 ;注释 各部分之间至少要用一个空格作为间隔。5.1 概述 语句行是由标记及分隔符按照一定规则组织起来的,标记是汇编语言源程序的最小的、具有意义的单位,如标识符、保留字、界符、常数和注释,所有这些都称为标记。在8086汇编语言中,有数值表达式和地址表达式两种,由各种常量与运算符连接成的式子,称为数值表达式。将常量、变量、标号、寄存器内容和运算符、操作符组合成的有意义的式子,称为地址表达式。单个常量,变量、标号是表达式的最简形式。在汇编过程中,汇编程序按操作运算符约定的优先规则对表达式进行计
4、算,得到一个数值或一个地址。5.2 语句行构成 伪指令用来指示汇编程序应该如何去处理汇编语言的源程序。它们在汇编时被解释执行,除了部分语句可以申请存储空间以外,不产生任何目标代码。5.3 伪指令 2等号语句 格式:符号名=表达式 功能:把表达式的值赋值给符号名,等号语句与等值语句具有相同的功能。5.3.1 5.3.1 符号定义伪指令符号定义伪指令1等值语句 格式:符号名 EQU 表达式 功能:用一个符号名来代替表达式,使该符号名与表达式同义。格式:变量名 数据定义符 操作数,操作数,功能:方括号中的变量名为可选项。操作数可以不止一个,多个操作数时用逗号分开。数据定义符号是DB、DW、DD、DQ
5、、DT。DB定义字节类型变量,DW定义字类型变量,DD定义双字类型变量,DQ定义四字类型变量,DT定义十字节类型变量。5.3.2 5.3.2 数据定义伪指令数据定义伪指令DATA DB l0H,20HSTRl DBCOMPUTERDATAlDB20 DUP(?)DATA2DW?DATA3DB 20 DUP(30H)5.3.2 5.3.2 数据定义伪指令数据定义伪指令格式:段名 SEGMENT 定位类型 组合类型 类别名 段名 ENDS功能:用来把程序分成若干逻辑段,实现存储器的分段管理,在汇编和连接程序时,控制不同段的定位,组合和连接,以便形成一个可执行程序。5.3.3 5.3.3 段定义伪指
6、段定义伪指 段寻址伪指令用来告诉汇编程序当前使用的各个段的段地址将要存放在哪个段寄存器中。格式:ASSUME段寄存器名:段名,段寄存器 名:段名功能:设置或撤消在SEGMENTENDS伪指令中 定义过的段名所使用的段寄存器。5.3.4 5.3.4 段寻址伪指令段寻址伪指令格式:过程名 PROC NEARFAR RET 过程名 ENDP功能:定义一个过程,并指明过程名和过程的属性。过程名实际上是过程入口的符号地址,PROC和 ENDP前的过程名必须相同,它们之间的部分是过程体。过程的类型可以是NEAR,表示所定义的过程是一个近过程。过程类型为FAR表示是一个远过程,5.3.5 5.3.5 过程定
7、义伪指令过程定义伪指令一般说来,编制一个汇编程序的步骤如下:(1)分析题意,确定算法。(2)根据算法画出程序框图。(3)根据框图编写程序。(4)上机调试程序。程序有顺序、循环、分支和子程序四种结构形式。顺序程序结构是指完全按顺序逐条执行的指令序列,这在程序段中是大量存在的,但作为完整的程序则很少见。5.4 程序设计举例 1分支程序的结构形式 分支程序结构可以有两种形式,如图所示。判定条件判定条件NY 判定条件判定条件(a)IF_THEN_ELSE(b)CASE 分支程序的结构形式图5.4 程序设计举例 2分支程序设计方法 程序的分支一般用条件转移指令来产生,下面一些例子来分析分支程序的设计方法
8、。例5.6 编程求符号函数,设x在AL中5.4.1 5.4.1 分支程序设计分支程序设计 程序:DATASEGMENT ;定义数据段XXDB10YYDB?DATAENDSCODE SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATASTART PROC FARBEGIN:PUSH DS ;DS:00 压栈 MOVAX,0PUSH AXMOVAX,DATAMOVDS,AX;置数据段MOVAL,XX;AL=XXCMPAL,0;AL与0比较JGEBIGR;大于,等于转BIGRMOVAL,0FFH;AL=-1JMPEQUT;转EQUTBIGR:JEEQUT ;等于0,转EQUTM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机系统 5 微型计算机 系统
限制150内