微机原理及其应用_第4章

上传人:wm****3 文档编号:51892489 上传时间:2018-08-17 格式:PPT 页数:325 大小:2.20MB
返回 下载 相关 举报
微机原理及其应用_第4章_第1页
第1页 / 共325页
微机原理及其应用_第4章_第2页
第2页 / 共325页
微机原理及其应用_第4章_第3页
第3页 / 共325页
微机原理及其应用_第4章_第4页
第4页 / 共325页
微机原理及其应用_第4章_第5页
第5页 / 共325页
点击查看更多>>
资源描述

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

1、第四章 8086 CPU的指令系统与汇编语 言程序设计 湖南工学院主讲教师:吴 乐本章内容本章内容 指令的基本概念和指令所包含的基本内容。 8086指令的格式及编码方式。 8086指令的寻址方式及寻址过程。 8086指令系统的分类、功能及操作过程,每条指令的格式及用法。 汇编语言程序的格式 汇编语言程序的上机过程 伪指令语句 汇编语言程序设计的基本方法 本章内容本章内容学习目的学习目的 掌握指令及指令系统的基本概念。 掌握8086各种寻址方式所执行的数据寻址过程。 牢固地掌握存储器段地址:偏移地址的组织结构和段约定的基本概念。 掌握每条8086指令的格式、功能及用法。 掌握指令的操作过程中操作

2、数的变化情况以及对标志位的影响。 学会正确选用指令完成简单的任务。学习目的学习目的 了解汇编语言程序的基本格式,及其上 机过程。 熟练掌握数据定义伪指令、段定义伪指 令、符号定义伪指令、过程定义伪指令 。 熟练掌握汇编语言程序设计的一般步骤 以及顺序程序、分支程序、循环程序、 子程序设计的方法。学习目的学习目的章节内容4.1 8086CPU的指令格式与寻址方式 4.2 8086指令系统4.3 汇编语言程序设计 4.4 伪指令及其应用 4.5 汇编语言属性操作符 4.6 汇编语言程序的上机过程 4.7 汇编语言程序与DOS的接口 4.8 汇编语言程序设计的基本技术 4.1 8086CPU的指令格

3、式与寻址方式 4.1.1 指令的基本概念 指令通常以二进制代码的形式提供给计算机,这种指令称为机器指令。例:10001000 11011000就是一条2字节的机器指令,指示计算机 执行:“把寄存器BL内容复制到寄存器AL之 中” 的操作。表示为: ALBL。指令:指示计算机执行什么操作的命令。指令系统 (Instruction System): 程序 (Program): 完成某个特定任务而编制的一系列指 令的有序集合。程序的执行一般是按指令的先后次序一条一 条执行,但遇到转移类指令时则可能改变指令的 执行次序。计算机所能执行的全部指令。4.1.2 指令包含的基本内容及格式1. 做什么操作由指

4、令的操作码字段规定。2. 操作数的来源操作数来自于什么地方。由指令的操作 数字段规定。操作数的来源可以是:a. CPU内的某个寄存器;b. 存储器内的某一个或几个单元;c. I/O端口; d. 立即数。3. 操作结果的去向操作的结果将存放在何处。4. 下一条指令的位置指示下一条指令是顺序执行还是转移执行。指令的表示方法1. 二进制代码表示机器语言指令2. 助记符表示汇编语言指令例:10001000 11011000例:MOV AL,BLMOV表示“传送”助记符,BL(寄存器) 表示结果存放的位置,AL(寄存器)表示数 据的来源。助记符表示的指令便于书写、理解和 记忆,但最终必须将助记符指令“翻

5、译”成机器指令才能被识别和执行。这个过程叫“汇编”。助记符指令机器指令汇编4.1.3 8086 CPU的寻址方式地址:数据和指令存放的位置。数据存放的位置可以是寄存器、存储器或I/O端口,指令存放的位置只能是存储器中的代码段。寻址方式:寻找指令地址和操作数地址的方式。寻址过程:形成指令地址和操作数地址的过程。1. 立即数寻址操作数作为立即数就在指令中给出。例:MOV AX,1234H操作:把立即数1234H送寄存器AX中。机器码:B8 34 12 (低字节在地址小的单元)AHALAX.B83412.5678代码段 (存储器中)操作码(B8)操作数(1234H) 立即数一条指令指令执行后,AX=

6、1234H (原有的内容被新的内容替换)。1234MOV AX,1234H2. 寄存器寻址操作数在某个寄存器中。例:INC BL操作:使BL中内容加1后送回+1BL00即BL=00H,则执行后BL=01H若BL=FFH,则执行后BL=00H01关于存储器寻址的说明*操作数在存储器中的一个或几个单元中。*在以下几种寻址方式中,要找到操作数,关键是必须找到该操作数所在单元的地址。*由于8086对存储器采用分段的组织结构 ,内存单元的地址由段起始地址 (基地址) 和该 单元与段起始地址之间的距离 (即偏移量,以 字节数计) 两部分共同决定。 段起始地址:某个段寄存器的内容(又称段基值)乘以16得到

7、。 段内偏移量 (亦称为:有效地址EA) :该单元与段起始地址之间的距离(字节数)。有效地址EA待寻址的内存单元(CS, DS, ES, SS)16 段基地址即:物理地址 =段基值16+EA内存单元物理地址8086规定,在执行某种操作时,采用的段寄存器有一个预先的约定。故指令中一般只需给出EA的寻址信息,CPU将能够根据该次操作的性质自动选用段寄存器,并将其与EA一起形成物理地址。因此,存储器寻址的实质就是如何形成 有效地址EA。3. 直接寻址指令中以偏移量方式直接给出操作数的有效地址。即EA=指令中给出的偏移量例:MOV AX,1234H机器码:A1 34 12操作:把偏移量1234H作为E

8、A,在数据段中找到相应的字单元,再将字单元的内容送AX。本例执行完后, AX=3050HEA=1234H设DS=3000H31234H1234H+EA=1234H31234H56783050DS16=30000H30000H= 3000H16.A1 34 1250 30.指令代码段数据段AHALAXMOV AX, 1234Ha. 直接寻址的操作过程与立即寻址不同。为表示它们的区别,直接寻址的偏移量用 一对 “ ”表示。立即寻址:MOV AX,1234H直接寻址:MOV AX,1234Hb. 段基值乘以16,相当于段基值(二进制表示)左移4位,或段基值(十六进制表示)在末尾添一个0H。注:4.寄

9、存器 间接寻址以间接的方式得到有效地址EA,有几个专用 的寄存器可用于间接寻址:BX,BP,SI,DI。a. 基址寻址方式以BX作为基址寻址寄存器,操作数在数据段中。以BP作为基址寻址寄存器,操作数在堆栈段中。EA=BX或BP的内容例:MOV AX,BX机器码:8B 04操作:以BX的内容作为有效地址EA,在数据段中找到对应的字单元,再将该字单 元的内容送AX中。EA=BX 设DS=2000H,BX=1000H本例执行后 AX=50A0HDS1620000H EA=BX(=1000H)21000H50A08B04A0 50代码段数据段AXAHAL这种寻址方式的优点就在于可以随时修改BX寄存器的

10、内 容,而指向不同的存储单元。故BX又称为基址指针寄存器。b. 变址寻址方式以SI,DI寄存器作为间接寻址寄存器,操 作数在数据段中。EA=SI或DI内容例:ADD AX,SIEA=SI操作:以EA作为有效地址,在数据段中 找到某个操作数,再将该操作数与AX的内容 相加,结果存放在AX中。5.寄存器相对 寻址 操作数的有效地址EA由两部分合成,一部分 置于某个基址或变址寄存器中,另一部分为指 令中指定的8位或16位位移量。操作数所在的 默认段与寄存器间接寻址类似。 例: MOV AX,4000H DI 或 MOV AX,DI + 4000H 设DI=1000H,则有效地址为: EA=1000H

11、+4000H=5000H。 若DS=3000H,则物理地址为: 30000H + 5000H = 35000H。6. 基址变址寻址既有基址寄存器(BX或BP),又有变址寄存器参与的(SI或DI)寻址,操作数在基址寄存器所规定的段中。EA=(BX或BP)+(SI或DI)例: MOV AX,BXDI 或 MOV AX,BX+DI 设BX=6000H,DI=1000H,则: EA=6000H+1000H=7000H,默认段为 DS。 若DS=2000H,则源操作数所对应的物理地址为: 20000H+7000H=27000H。7.相对基址变址 寻址 有效地址由三部分组成, 即:EA=基址寄存器内容+变

12、址寄存器内容+8位 或16位位移量。 操作数所对应的默认段与基址变址寻址方式相 同。 例: MOV AX,BX+SI+0080H; 则: EA=BX+SI+0080H,操作数在数据段例:MOV AX,0260H BX SIEA=BX+SI+0260H,操作数在数据段中MOV AX,INF BP+DIEA=BP+DI+位移量INF,操作数在堆栈段中* 以上两种基址+变址的格式都是合法的。课堂练习与思考:1.请指出下列每条指令源操作数的寻址方式。(1) MOV AX, BX(2) MOV CH, 3AH(3) MOV BX, 2000H(4) MOV DX, BX(5) MOV CX, BP+2(

13、6) MOV AX, 3BX DI(7) MOV AL, ES:SI(8) MOV BX, DS:BP;寄存器寻址,操作数在BX中;立即数寻址,操作数为3AH;直接寻址,EA=2000H,数在数据段;间接寻址,EA=BX,数在数据段;寄存器相对寻址,EA=BP+2,数在堆栈段;相对基址变址寻址,EA=BX+DI+3,数在数据段;含段超越的变址寻址,EA=SI,数在附加段;含段超越的基址寻址,EA=BP,数在数据段课堂练习与思考:2. MOV AX,BX+SI+0080H, 即:将BX与SI中的内容与0080H相加作有效地址。3.设BX=0123H DI=1000H DS=3200H,默认DS作

14、为操 作数对应的段寄存器(假定没使用段前缀),试指出下 列指令的寻址方式,并写出其操作数的有效地址和物 理地址。 (1)MOV AX,1A38H (2)MOV AX,BX (3)MOV AX,BX+1A38H (4)MOV AX,BX+DI (5)MOV AX,BX+DI+1A38H课堂练习与思考:解:解: (1)直接寻址 有效地址=1A38H, 物理地址=32000H+1A38H=33A38H(2)寄存器间接寻址有效地址=0123H, 物理地址=32000H+0123H=32123H(3)寄存器相对寻址有效地址=0123H+1A38H=1B5BH,物理地址=32000H+1B5B=33B5B

15、H(4) 基址变址寻址有效地址=0123H+1000H=1123H,物理地址=32000H+1123H=33123H(5)相对基址变址寻址有效地址=0123H+1000H+1A38H=2B5BH,物理地址=32000H+2B5BH=34B5BH 返回4.2 8086指令系统8086指令按功能分为六大类。8086指令系统数据传送指令算术运算指令逻辑运算指令串操作指令程序控制指令CPU控制指令memmem 存储器操作数存储器操作数 datadata 立即数立即数 opropr 表示操作数表示操作数 存储单元的内容存储单元的内容 accacc 累加器操作数累加器操作数(AX(AX或或AL) AL) regreg 寄存器寄存器 srcsrc 源操作数源操作数 segregsegreg 段寄存器段寄存

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

当前位置:首页 > 生活休闲 > 社会民生

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