微型计算机基本原理与其应用——汇编语言程序相关设计_第1页
微型计算机基本原理与其应用——汇编语言程序相关设计_第2页
微型计算机基本原理与其应用——汇编语言程序相关设计_第3页
微型计算机基本原理与其应用——汇编语言程序相关设计_第4页
微型计算机基本原理与其应用——汇编语言程序相关设计_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微型计算机基本原理与其应用汇编语言程序相关设计微型计算机基本原理与其应用汇编语言程序相关设计2第四章:汇编语言程序设计第四章:汇编语言程序设计 汇编语言的基本要素 伪指令 汇编语言程序设计微型计算机基本原理与其应用汇编语言程序相关设计3第四章:汇编语言程序设计第四章:汇编语言程序设计 汇编语言的基本要素 伪指令 汇编语言程序设计微型计算机基本原理与其应用汇编语言程序相关设计4第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言的格式 汇编语言中的常数 汇编语言中的运算符和表达式微型计算机基本原理与其应用汇编语言程序相关设计5第四章:汇编语言程序设计第四

2、章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言的格式 汇编语言中的常数 汇编语言中的运算符和表达式微型计算机基本原理与其应用汇编语言程序相关设计6第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言的格式 由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由14个部分组成,其格式是: 标号 指令助记符 操作数 ;注解 标识符:给指令或某一存储单元地址所起的名字。可由下列字符组成: 字母:A z ; 数字:0 9 ; 特殊字符:?、 、一、$ 。数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。标识符最长为3

3、1个字符。当标识符后跟冒号时,表示是标号。它代表该行指令的起始地址;当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。 指令助记符:表示不同操作的指令,可以是8086的指令助记符,也可以是伪指令。 操作数: 指令执行的对象。依指令的要求,可能有一个、两个或者没有。1. 注解:该项可有可无,是为源程序所加的注解,用于提高程序的可读性。 微型计算机基本原理与其应用汇编语言程序相关设计7第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言的格式 汇编语言中的常数 汇编语言中的运算符和表达式微型计算机基本原理与其应用汇编语言程序相关设计8第四章:汇编语

4、言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的常数 汇编语言中的常数可以分数值常数和字符串常数两类。数值常数按其基数的不同,可有二进制数、八进制数、十进制数、十六进制数等几种不同的表示形式,汇编语言中采用不同的后缀加以区分。 B:表示二进制数。例如,10100101B。 D:表示十进制数。例如,278D或278。 Q:表示八进制数。例如,567Q,263Q。 H:表示十六进制数。例如,9AH,5678H。 字符串常数是由单引号括起来的一串字符。例如:THIS IS A STUDENT!12345 要指出的是,此处的12345其值并非是十进制数12345,而

5、是代表它们所对应的ASCII码,即31H,32H,33H,34H,35H。微型计算机基本原理与其应用汇编语言程序相关设计9第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的运算符和表达式 在表达式中,运算符充当着重要的角色。8086宏汇编有算术运算符、逻辑运算符、关系运算符、数值回送操作符和属性操作符共5种。 数值回送(Value_returning)操作符可以把一些特征或存储器地址的一部分作为数值回送。共有5个:SEG(求段基值)、OFFSET(求偏移量)、TYPE(求变量类型)、LENGTH(求字节数)和SIZE(求字节数)。其中LENGTH

6、和SIZE只对数据存储器地址操作数有效。 属性操作符可以用来建立和临时改变变量或标号的类型以及存储器操作数的存储单元类型,而忽略当前的属性。共有6个:PTR、段属性前缀、SHORT、THIS、HIGH和LOW。微型计算机基本原理与其应用汇编语言程序相关设计10第四章:汇编语言程序设计第四章:汇编语言程序设计汇汇编语言的基本要素编语言的基本要素 汇编语言中的运算符和表达式 算术运算符算术运算符逻辑运算符逻辑运算符关系运算符关系运算符数值回送运算符数值回送运算符属性运算符属性运算符+(加法加法)AND(与与)EQ(相等相等)TYPEPTR-(减法减法)OR(或或)NE(不等不等)LENGTHTHI

7、S*(乘法乘法)XOR(异或异或)LT(小于小于)SIZESHORT/(除法除法)NOT(非非)GT(大于大于)OFFSETHIGHMOD(求余求余)LE(小于等于小于等于)SEGLOWGE(大于等于大于等于)微型计算机基本原理与其应用汇编语言程序相关设计11第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的运算符和表达式数值回送操作符 SEG运算符:利用运算符SEG可以得到一个标号或变量的段基址 格式:SEG变量名或标号名 例如:已知数据段DATA从存储器实际地址03000H开始,作如下定义后,用SEG运算符求变量所在的段基址。DATASEGM

8、ENT;定义数据段VAR1DB10H,18H,25H,34H;定义字节数据VAR2DW2300H,1200H;定义字数据VAR3DD11002200H,33004400H;定义双字数据DATAENDS;数据段结束 MOV BX,SEG VAR1汇编成: MOV BX,0300H MOV CX,SEG VAR2汇编成: MOV CX,0300H MOV DX,SEG VAR3汇编成; MOV DX,0300H微型计算机基本原理与其应用汇编语言程序相关设计12第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的运算符和表达式数值回送操作符 OFFSET

9、运算符:利用运算符OFFSET可以得到一个标号或变量的偏移量。 使用格式:OFFSET 变量名或标号名DATASEGMENT;定义数据段VAR1DB10H,18H,25H,34H;定义字节数据VAR2DW2300H,1200H;定义字数据VAR3DD11002200H,33004400H;定义双字数据DATAENDS;数据段结束 MOV BX,OFFSET VAR1 汇编成: MOV BX,0000H MOV CX,OFFSET VAR2 汇编成: MOV CX,0004H MOV DX,OFFSET VAR3 汇编成: MOV DX,0008H微型计算机基本原理与其应用汇编语言程序相关设计1

10、3 汇编语言中的运算符和表达式数值回送操作符TYPE运算符:TYPE运算符可加在变量、结构或标号的前面,所求出的是这些存储器操作数的类型部分。运算符TYPE的运算结果是一个数值,这个数值与存储器操作数类型属性的对应关系。MOV BX,TYPE VAR1 汇编成: MOV BX,1MOV CX,TYPE VAR2 汇编成: MOV CX,2MOV DX,TYPE VAR3 汇编成: MOV DX,4存储操作数类型存储操作数类型 TYPE返回值返回值字节数据字节数据BYTE(DB定义)定义)1字数据字数据WORD(DW定义)定义)2双字数据双字数据DWORD(DD定义)定义)4第四章:汇编语言程序

11、设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素微型计算机基本原理与其应用汇编语言程序相关设计14第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的运算符和表达式数值回送操作符 LENGTH运算符:LENGTH运算符放在数组变量的前面,可以求出该数组中所包含的变量的个数。 ARRAY1 DB 100DUP(?)ARRAY2 DW 10DUP(?) ARRAY3 DD 10DUP(?)下列指令:MOV BX,LENGTH ARRAY1汇编后:MOV BX,100MOV CX,LENGTH ARRAY2汇编后:MOV CX,10MOV

12、 DX,LENGTH ARRAY3汇编后:MOV DX,10微型计算机基本原理与其应用汇编语言程序相关设计15第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的运算符和表达式数值回送操作符 SIZE运算符:如果一个变量已经用重复操作符DUP加以说明,则利用SIZE运算符可以得到分配给该变量的字节总数。 ARRAY1 DB 100DUP(?)ARRAY2 DW 10DUP(?) ARRAY3 DD 10DUP(?)下列指令:MOV BX,SIZE ARRAY1汇编后:MOV BX,100MOV CX,SIZE ARRAY2汇编后:MOV CX,20

13、MOV DX,SIZE ARRAY3汇编后:MOV DX,40微型计算机基本原理与其应用汇编语言程序相关设计16第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言的基本要素语言的基本要素 汇编语言中的运算符和表达式属性操作符 PTR运算符:用来建立一个符号地址。其本身并不分配存储器,只是用来给已分配的存储器地址赋予另一种属性,使该地址具有另一种类型。 VAR1DB 10H,18H,25H,34HVAR2DW 1223H,1200HMOV AX, WORD PTR VAR1 执行后:AX=1810HMOV BL, BYTE PTR VAR2 执行后:BL=23H 微型计算机基本原理与其

14、应用汇编语言程序相关设计17第四章:汇编语言程序设计第四章:汇编语言程序设计 汇编语言的基本要素 伪指令 汇编语言程序设计微型计算机基本原理与其应用汇编语言程序相关设计18第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 伪指令用来对汇编程序进行控制,对程序中的数据实现条件转移、列表、存储空间分配等处理,其格式和汇编指令一样,但一般不产生目的代码,即不直接命令CPU去执行什么操作。 亦即它不像机器指令那样是在程序运行期间由计算机来执行的,而是在汇编程序对源程序汇编期间由汇编程序处理的操作。微型计算机基本原理与其应用汇编语言程序相关设计19第四章:汇编语言程序设计第四章:汇编语言程序

15、设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计20第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计21第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 该类伪指令用来定义存贮空间及其所存数据的长度。 DB:定义字节,即每个数据是1个字节。 D

16、W:定义字,即每个数据占1个字(2个字节)。 DD:定义双字,即每个数据占2个字。低字部分在低地址,高字部分在高地址。 DQ:定义4字长,即每个数据占4个字。 DT:定义10个字节长,用于压缩式十进制数据。 例如:DATA1 DB 10H,6,78H,100 表示从DATA1单元开始连续存放10H,6,78H,100,共占4个字节地址。 微型计算机基本原理与其应用汇编语言程序相关设计22第四章:汇编语言程序设计第四章:汇编语言程序设计伪指令伪指令 定义数据伪指令DATA1DB20HDATA2DW0240H,1000HDATA3DB(-1*3),(15/5)DATA4DD12345HDATA5D

17、B0123DATA6DWAB,C,DDATA7DB?DATA8DD?DATA9DB5DUP(00)DATA10DW3DUP(?)微型计算机基本原理与其应用汇编语言程序相关设计23第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计24第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 符号定义伪指令 EQU伪指令给符号定义一个值。在程序中,凡是出现该符号的地方,汇编时均用其值代替,如: COUNT EQU

18、 100;COUNT代替常数100SUMEQU 30*25;SUM代替数值表达式CEQU CX;C代替寄存器CXMEQU MOV ;M代替指令助记符MOV 需要注意的是,一个符号一经EQU伪指令赋值后,在整个程序中,不允许再对同一符号重新赋值。 微型计算机基本原理与其应用汇编语言程序相关设计25第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计26第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 段定

19、义伪指令 段定义伪指令的用途是在汇编语言程序中定义逻辑段,用它来指定段的名称和范围,并指明段的定位类型、组合类型及类别。常用的段定义为指令有SEGMENT和ENDS。 段名 SEGMENT 定位类型 组合类型 类别 (段内语句系列)段名 ENDS微型计算机基本原理与其应用汇编语言程序相关设计27第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 段定义伪指令DATA1 SEGMENT DATA1 ENDSSTACK1 SEGMENT STACK STACK1 ENDSCODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1,SS:STACK1 MOV AX,DAT

20、A MOV DS,AX MOV AX,STACK MOV SS,AX CODE1 ENDS微型计算机基本原理与其应用汇编语言程序相关设计28第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计29第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 设定段寄存器伪指令 设定段寄存器伪指令用来通知汇编程序哪一个段寄存器是该段的段寄存器,以便对使用变量或标号的指令汇编出正确的目的代码。常用的段定义为指令有ASS

21、UME。 ASSUME 段寄存器:段名,段寄存器:段名, 注意:由于ASSUME伪指令只指明某一个段地址应存于哪一个段寄存器中,并没有包含将段地址送入该寄存器的操作。因此要将真实段地址装入段寄存器还需用汇编指令来实现。这一步是不可缺少的。 微型计算机基本原理与其应用汇编语言程序相关设计30第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 设定段寄存器伪指令DATA1 SEGMENT DATA1 ENDSSTACK1 SEGMENT STACK STACK1 ENDSCODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1,SS:STACK1 MOV AX,DAT

22、A MOV DS,AX MOV AX,STACK MOV SS,AX CODE1 ENDS微型计算机基本原理与其应用汇编语言程序相关设计31第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计32第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义过程伪指令 在程序设计中,可将具有一定功能的程序段看成为一个过程(相当于一个子程序),它可以被别的程序调用。一个过程由伪指令PROC和ENDP来定义。过程名

23、 PROC 类型 过程体 RET 过程名 ENDP 其中过程名是为过程所起的名称,不能省略,过程的类型由FAR(远过程,为段间调用)和NEAR(近过程,在本段内调用)来确定,如果缺省类型,则该过程就默认为近过程。ENDP表示过程结束。过程体内至少应有一条RET指令,以便返回被调用处。过程可以嵌套,也可以递归使用。 微型计算机基本原理与其应用汇编语言程序相关设计33第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义过程伪指令DELAYPROC MOV BL,10DELY:MOV CX,2801WAIT:LOOPWAIT DEC BL JNZ DELY RETDELAYENDP 微

24、型计算机基本原理与其应用汇编语言程序相关设计34第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计35第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 宏指令 在汇编语言书写的源程序中,若有的程序段要多次使用,为了简化程序书写,该程序段可以用一条宏指令来代替,而汇编程序汇编到该宏指令时,仍会产生源程序所需的代码。 宏指令的一般格式为: 宏指令名 MACRO 形式参量表 宏体 ENDM 例如:SHIFT

25、 MACROMOV CL,4SAL AL,ClENDM 微型计算机基本原理与其应用汇编语言程序相关设计36第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计37第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 ORG伪指令ORG伪指令规定了在某一段内,程序或数据代码存放的起始偏移地址。 一般格式: ORG 例如: DATASEGMENT BUFF1 DB23,56H,EOF ORG2000H BUFF

26、2 DBSTRING DATAENDS 微型计算机基本原理与其应用汇编语言程序相关设计38第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END微型计算机基本原理与其应用汇编语言程序相关设计39第四章:汇编语言程序设计第四章:汇编语言程序设计伪指伪指令令 汇编结束伪指令END 该伪指令表示源程序的结束令汇编程序停止汇编。因此,任何一个完整的源程序均应有END指令。一般格式: END 表达式其中表达式表示该汇编程序的启动地址。例如:END START ;表明该程序

27、的启动地址为START。微型计算机基本原理与其应用汇编语言程序相关设计40第四章:汇编语言程序设计第四章:汇编语言程序设计 汇编语言的基本要素 伪指令 汇编语言程序设计微型计算机基本原理与其应用汇编语言程序相关设计41第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 汇编语言程序设计概述 顺序程序设计 选择程序设计 循环程序设计 子程序设计微型计算机基本原理与其应用汇编语言程序相关设计42第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 汇编语言程序设计概述 顺序程序设计 选择程序设计 循环程序设计 子程序设计微型计算机基本原理与

28、其应用汇编语言程序相关设计43第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 汇编语言程序设计概述1编写源程序 在弄清问题的要求,确定方案后,汇编语言程序设计者便可依据前面的指令系统和汇编语言的规定,逐个模块地编写汇编语言源程序。2源程序输入微型机 在编辑软件或其他编辑软件的支持下,将源程序输入到计算机中。通常,汇编语言源程序的扩展名为 ASM。3汇编 利用汇编程序(或宏汇编程序)(ASM或MASM)对汇编语言源程序进行汇编,产生扩展名为OBJ的可重定位的目的代码。4连接 利用连接程序(LINK)可将一个或多个扩展名为OBJ文件进行连接,生成扩展名为扩展名为E

29、XE的可执行文件。 5调试 对于稍大一些的程序来说,经过上述步骤所获得的 EXE可执行文件,在运行过程中难免无错。调试汇编程序最常用的工具是动态调试程序DEBUG。微型计算机基本原理与其应用汇编语言程序相关设计44第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 汇编语言程序设计概述汇编语言源程序编辑程序汇编程序ASM或MASM连接程序LINK调试程序DEBUG修 改出错出错.ASM.OBJ.EXEEDIT.EXE微型计算机基本原理与其应用汇编语言程序相关设计45第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 汇编语言程序设计概

30、述 顺序程序设计 选择程序设计 循环程序设计 子程序设计微型计算机基本原理与其应用汇编语言程序相关设计46第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 顺序程序设计 对于一些简单的数据处理,只要把完成处理的各个步骤用汇编语言描述清楚,让计算机按指令编写的次序从头到尾一条条执行即可,这样的程序结构称为顺序结构。 【例4-1】已知X和Y是数据段中的两个无符号字节单元,用程序完成表达式Z=(X2Y2)/2的计算。微型计算机基本原理与其应用汇编语言程序相关设计47第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 顺序程序设计 DATA

31、SEGMENTXDB 15YDB 34ZDW ?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;初始化数据段MOVAL,X;X中的内容送ALMULAL;计算XXMOVBX,AX;XX乘积送BXMOV AL,Y;Y中的内容送ALMULAL;计算YYADDAX,BX;计算X2Y2SHRAX,1;计算(X2Y2)/2MOV Z,AX;结果送Z单元MOV AH,4CHINT21H;返回DOSCODEENDSEND START;汇编结束微型计算机基本原理与其应用汇编语言程序相关设计48第四章:汇编语言程序设计第四章:汇

32、编语言程序设计汇编汇编语言程序设计语言程序设计 顺序程序设计【例4-2】从键盘读入两个一位数(按键时保证按下的是数字键),显示它们的积。先后从键盘上读取两个按键,分别减去30H得到它们对应的数值,然后相乘分解成十位数字与个位数字,转换成ASC码后依次输出即可。为了输入输出效果的直观,有必要在每次按键后回车换行。 CODESEGMENTASSUMECS:CODEMAIN: MOV AH,1INT21H;读入第1个数字MOVBL,AL;保存在BL中MOVAH,2MOVDL,13INT21H;回车MOVDL,10INT 21H;换行MOVAH,1INT21H;读入第2个数字SUBAL,30H;第2个

33、数字转换成十进制数SUBBL,30H;第1个数字转换成十进制数MULBL;两个数相乘,积在AX中微型计算机基本原理与其应用汇编语言程序相关设计49第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 顺序程序设计MOVBL,10;DIVBL;积除以10取商送AL,余数在AH中ADDAX,3030H;转换成相应的ASC码MOVBX,AX;保存在BX中MOVAH,2MOVDL,13INT21H;回车MOVDL,10INT21H;换行MOV DL,BLMOVAH,2INT21H;输出十位数MOVDL,BHINT21H;输出个位数MOVAH,4CHINT21H;返回DOSC

34、ODEENDSENDMAIN;程序结束微型计算机基本原理与其应用汇编语言程序相关设计50第四章:汇编语言程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 汇编语言程序设计概述 顺序程序设计 选择程序设计 循环程序设计 子程序设计微型计算机基本原理与其应用汇编语言程序相关设计51第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 选择程序设计 选择程序是利用条件转移指令,使程序执行到某一指令后,根据条件是否满足,来改变程序执行的次序。在程序设计中经常会遇到各种判断和比较,例如“相等”和“不相等”;“正”和“负”;“大于”和“小于”;“满足条件”和“不

35、满足条件”等等,这些判断和比较在程序中都可以组成各种不同的逻辑框,并产生相应的分支程序。 分支程序段2分支程序段3分支程序段1结束条件1条件2是否是否微型计算机基本原理与其应用汇编语言程序相关设计52第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 选择程序设计 1 当X0【例4-3】符号函数Y=0当X=0 (128X+127) 1 当X0 设任意给定的X存放在XX单元,计算出函数Y值要求存放在YY单元。 开 始X X A L- 1 A L1 A LA L Y Y 单 元A L 0A L = 0YN结 束微型计算机基本原理与其应用汇编语言程序相关设计53第四章:

36、汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 选择程序设计 DATASEGMENTXXDB0F0HYYDB?DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART PROCFARPUSHDS SUBAX,AXPUSHAX MOVAX,DATAMOVDS,AX MOVAL,XXCMPAL,0JGEBIGRMOVAL,0FFHMOVYY,ALRETBIGR:JEEQULMOVAL,1EQUL:MOVYY,ALRETSTART ENDPCODEENDSENDSTART 微型计算机基本原理与其应用汇编语言程序相关设计54第四章:汇编语言

37、程序设计第四章:汇编语言程序设计汇编汇编语言程序设计语言程序设计 汇编语言程序设计概述 顺序程序设计 选择程序设计 循环程序设计 子程序设计微型计算机基本原理与其应用汇编语言程序相关设计55第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 循环程序设计 循环程序是强制CPU重复执行某一指令系列的一种程序结构形式,它可以使许多重复工作的程序大为简化,而且减少内存空间。被重复执行的部分称作循环体,要想把循环体多次执行,就必须在循环体的前后有相应的指令实现循环控制。 循环程序一般由4部分组成:初始化、循环体、循环控制和循环结束处理。开始初始化循环体循环控制判断结束处理

38、结束是否开始外循环初始化内循环初始化内循环体内控制外循环体外控制结束是是否否微型计算机基本原理与其应用汇编语言程序相关设计56第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 循环程序设计 【例4-4】现将以AREA1为首地址的100个字节数据搬移到以AREA2为首地址的内存中去。DATASEGMENTAREA1 DB100 DUP (?)AREA2 DB100 DUP (00)DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSET AREA1MOVDI,OFFS

39、ET AREA2MOVCX,100AGAIN:MOVAL,SIMOVDI,ALINCSIINCDIDECCXJNZAGAINMOVAH,4CHINT21HCODEENDSENDSTART微型计算机基本原理与其应用汇编语言程序相关设计57第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 循环程序设计 【例4-5】若有一串无符号数,放在NUM开始的单元中,要求编制汇编语言程序,将其中的最大值找出来,且放到存储单元MAX中,这串数的长度已存放在COUNT单元。DATASEGMENTCOUNT DW20NUMDW7,9,12,14,1,3,28,55,121,44,15

40、,45,34,67,87,90,32,43,59,60MAXDW?DATAENDSSTACK SEGMENT PARA STACK STACKDB20 DUP (?)STACK ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARPUSHDSMOVAX,0PUSH AX微型计算机基本原理与其应用汇编语言程序相关设计58第四章:汇编语言程序设计第四章:汇编语言程序设计汇编语言程序设计汇编语言程序设计 循环程序设计MOVAX,DATAMOVDS,AXMOVBX,OFFSET NUMMOVCX,COUNTMOVAX,BXINCBXINCBXLOOP1: C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论