微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统

上传人:E**** 文档编号:89507295 上传时间:2019-05-26 格式:PPT 页数:216 大小:5.98MB
返回 下载 相关 举报
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统_第1页
第1页 / 共216页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统_第2页
第2页 / 共216页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统_第3页
第3页 / 共216页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统_第4页
第4页 / 共216页
微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统_第5页
第5页 / 共216页
点击查看更多>>
资源描述

《微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统》由会员分享,可在线阅读,更多相关《微机原理及接口技术 教学课件 ppt 作者 王惠中 王强 第4章 8086寻址方式与指令系统(216页珍藏版)》请在金锄头文库上搜索。

1、第四章 8086寻址方式与指令系统,4.1 汇编语言和汇编程序的基本概念 4.2 8086寻址方式 4.3 8086的指令格式 4.4 8086指令系统,4.1.1汇编语言与机器语言 我们已经学过高级语言,例如BASIC语言或FORTRAN语言,无论哪种语言,它都规定了一系列用于编写程序的语句和应该遵循的语法规则。人们根据一种语言给定的语句及其语法规则就可以写出程序,计算机则通过执行已编好的程序来完成人们要求它完成的各种复杂功能。汇编语言也一样,根据汇编语言的语句及其语法规则可以写出汇编语言程序。但汇编语言与高级语言有较大的区别,汇编语言中的语句与机器的种类和型号密切相关。,4.1 汇编语言及

2、汇编程序的基本概念,在高级语言中,完成某个加法功能,我们可采用语句X=A+B,只要给变量A和B赋一确定值,此加法就可以实现了。在汇编语言中则不同,程序必须指出A,B存放在何处,相加后的结果又存放在何处,然后才能实现这一加法运算。显然,汇编语言在通过程序告诉计算机做什么和如何做时,显得更加具体。正是这种具体,使得该语言与计算机(处理器)紧密相关,从而也要求学习和使用汇编语言的人对处理器的结构有更加深入的了解。 那么,什么是机器语言,汇编语言与机器语言之间又有什么关系呢? 我们说,机器语言是这样一种语言,它的每条语句就是计算机可以直接执行的一条指令,这些指令以二进制码的形式表示。例如我们要将累加器

3、AX中加上一个常数 02, 其二进制码表示的指令为:,000001010000001000000000。也就是说,当处理器中取得了这样一组指令代码时,它将自动地完成(AX)+2(AX)中的操作。处理器所以能这样是因为处理器在设计时,就考虑了这样一组代码应完成的功能。自然,不同的处理器,指令的机器码将各不相同,完成的具体功能也将各不相同。采用机器语言编写程序的一个最大好处是,程序送入计算机后,可以直接执行。但是,我们很快会感觉到, 采用机器语言编写程序是多么困难,既不易书写,也不易检查。汇编语言正是为了克服这一缺点而形成的一种与机器语言直接相关的语言。汇编语言的基本思想是采用一组字母、数字或符号

4、来代替一条二进制码表示的指令,例如上面所述的指令可采用字符ADD AX, 02 来代替,它表示将累加器AX中的内容加上一个常数 02。 显然,这要比一串二进制码清晰多了,既容易书写,也容易记忆。,表示一条指令的这些字符常称为助记符。我们必须指出,采用助记符写出的程序,机器是不能直接执行的,因为上面我们已经指出,处理器在设计时是按二进制指令码考虑的。所以,采用汇编语言编写的程序在执行前还必须将其“翻译”成机器语言。通常将采用助记符指令写成的程序,称为源程序,将它翻译成的机器语言程序称为目标程序。将汇编语言的源程序翻译成目标程序的过程称为汇编过程或简称汇编。 汇编过程通常是由计算机完成的。它是通过

5、执行一个专门完成汇编的软件 称为汇编程序来实现的。既然写出的源程序要由汇编程序将其翻译后才能执行,所以,我们编写的源程序必须符合汇编程序的一系列要求或者规则,只有这样,你的程序才能被正确地“翻译”。,所以,汇编语言的一系列规则是与“翻译”软件汇编程序相关的。 汇编语言的语句有两种基本类型,即指令与伪指令。指令可由汇编程序翻译成机器语言指令,例如上例中的ADD AX, 02,汇编后将形成一条机器语言指令05 02 00(十六进制码), 所以,汇编语言中的指令与机器语言指令基本上是一一对应的。伪指令则不汇编成机器语言指令,仅仅在汇编过程中告诉汇编程序应如何汇编。例如告诉汇编程序已写出的汇编语言源程

6、序有几个段,段的名称是什么,是否采用过程,汇编到某处是否需要留出存储空间,应留多大,是否要用到外部变量等。,所以,伪指令是为汇编程序在汇编时用的。但指令与伪指令都是组成汇编语言源程序的基本语句。除了这两类基本语句外,在汇编语言中,还存在另一类指令称为宏指令,它是使用者利用上述基本语句自己定义的新的指令。,4.1.2 各种计算机语言的比较,机器语言 用机器码表示,例如B8H、C3H。 汇编语言 用指令助记符表示机器码,例如对应于机器码B8H、C3H的助记符为MOV AX,BX 。 CPU不同,机器码不同,助记符也不同。 高级语言 语言规范,可移植。,4.1.3 汇编语言与汇编程序,汇编语言汇编语

7、言源程序 用助记符表示机器码 用符号地址表示存储器地址 用伪指令管理源程序 汇编程序 将汇编语言源程序(简称源程序)编译为机器所能识别的目标代码的系统程序。如 MASM.EXE 。,汇编语言是一种面向CPU指令系统的程序设计语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址,因而易记、易读、易修改,给编程带来很大方便。 用汇编语言编写的程序能够直接利用硬件系统的特性,直接对位、字节、字寄存器、存储单元、I/O 端口等进行处理,同时也能直接使用CPU指令系统和指令系统提供的各种寻址方式编制出高质量的程序,这种程序不但占用内存空间少,而且执行速度快 。,1、 汇编语言,2、

8、 汇编程序 用汇编语言编写的源程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程称为汇编,完成汇编任务的程序称为汇编程序。 有基本汇编ASM(Assembler)和宏汇编MASM(MacroAssembler)两种。 汇编程序以汇编语言源程序文件作为输入,并由它产生两种输出文件:目标程序文件和源程序列表文件。 目标程序文件经连接定位后由计算机执行; 源程序列表文件将列出源程序、目标程序的机器语言代码及符号表。,汇编程序的作用就是把源程序文件(ASM文件)转换成用二进制代码表示的目标程序文件(OBJ文件)。 汇编程序的主要功能有: 检查源程序。 测出源程序语法错误,

9、并给出错误。 产生目标程序,并可给出列表文件 。 展开宏指令。,汇编语言指令的特点,语法结构符合人类语言的共同特点 动作对象 指令操作码动作:做什么? 指令操作数对象:针对什么做动作?,机器指令:指令的二进制代码形式。如:89D8H 汇编指令:助记符形式的指令。如:MOV AX,BX,汇编语言指令,操作码助记符: 与动作一一对应,例: MOV AX,BX,目/源操作数: 可能有多种组合,汇编语言指令,操作码:由CPU设计人员定义。每一种操作唯一对应一个操作码。 例:加法操作助记符ADD; 数据传送操作助记符MOV; 比较操作助记符CMP 操作数:可由编程人员采用不同方式给出。 寻址方式:寻找操

10、作数(操作数地址)的方式; 指令格式:指令中对操作码、操作数的编码方式。,操作数,1. 8086指令中操作数的个数可以有以下几种情况 无操作数指令,例:等待指令 WAIT 单操作数指令,例:加1指令 INC AL 双操作数指令,例:减法指令 SUB AL,BL 源操作数:后者(BL) 目的操作数:前者(AL),2、操作数存放地点,可以有以下几种:,立即数:操作数直接包含在指令中。 例:MOV AL,50H,寄存器操作数:操作数存放在寄存器中。 例:INC AL,内存操作数:操作数存放在内存单元中。 例:MOV AL,2000H,I/O 操作数:操作数来自I/O端口。 例:IN AL,28H,操

11、作数,4.2 8086寻址方式,给出操作数的可能的方式: 由操作码隐含地指定 由指令直接给出操作数 存放于CPU内部的寄存器中 存放于存储器单元内 来自I/O端口,8086寻址方式(续),非存储器寻址方式,存储器寻址方式,其它寻址方式, 固定寻址、相对寻址、I/O端口寻址,寄存器相对寻址方式,(基址加变址相对寻址),8086寻址方式,一、非存储器寻址方式(以8086为例,下同) 1、立即数寻址方式 源操作数以8位或16位常数的形式直接出现在指令中。一般用于赋值。 例:MOV AL,5FH 2、寄存器(直接)寻址方式 8位或16位寄存器的值就是操作数本身。与其它寻址方式相比,该方式执行速度最快。

12、 例: MOV SI,DX,立即数可以用二进制数、八进制数、十进制数以及十六进制数来表示。在非十进制的立即数末尾需要使用字母加以标识。必要情况下,十进制数用字母D加以标识, 通常情况下不需要标识。 如: MOV AL, 10 ; 十进制数() MOV AL, 00100101B ; 二进制数() MOV AL, 0AH ; 十六进制(),8086寻址方式(续),二、存储器寻址方式 1、直接寻址方式 操作数存放在存储器单元中,由指令直接给出该单元的有效地址EA(即16位段内偏移量)。 例:MOV AX,0016H 寻址过程示意 2、寄存器间接寻址方式 操作数存放在存储器单元中,指令给出的16位寄

13、存器值就是该单元的EA。 例: MOV BX,CL,寻址过程示意,直接寻址过程示意图,Bit 19 4 3 0,20 位 物 理 地 址,Memory,MOV AX,0016H,寄存器间接寻址过程示意图,MOV BX,CL ( 设BX原值为2010H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,8086寻址方式基址寻址,3、基址寻址方式(寄存器相对寻址方式) 使用基址寄存器(BX或BP)、并带位移量的间接寻址。操作数EABX或BP值位移量。 例:MOV DL,BP+2 其它等效写法: MOV DL,BP2 MOV DL,2BP 寻址过程示意,基址寻址过程示意图,MOV

14、DL,BP+2 ( 设BP原值为4000H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,8086寻址方式变址寻址,4、变址寻址方式(寄存器相对寻址方式) 使用变址寄存器(SI或DI)、并带位移量的间接寻址。操作数EASI或DI值位移量。 例:MOV SI+10,AH 其它等效写法: MOV SI10,AH MOV 10SI,AH 寻址过程示意,变址寻址过程示意图,MOV SI10 ,AH ( 设SI原值为008CH),Bit 19 4 3 0,20 位 物 理 地 址,Memory,8086寻址方式基址加变址寻址,5、基址加变址寻址方式 使用一个基址寄存器、一个变址寄存

15、器的间接寻址。操作数EABX或BP值 SI或DI值(位移量)。 例:MOV BX+DI+4,CX 其它等效写法: MOV BX+DI4,CX MOV 4BX+DI,CX MOV BXDI4,CX MOV 4BXDI,CX 寻址过程示意,基址加变址寻址过程示意图,MOV BX+DI+4 ,CX ( 设BX原值为1000H,DI原值为0300H),Bit 19 4 3 0,20 位 物 理 地 址,Memory,段寄存器使用规则,段超越前缀 段超越前缀形式为: 段寄存器名: 例如: 当操作数在内存单元时,系统根据隐含约定,自动将寄存器DS或SS的值作为段地址。然而,当操作数段地址不在隐含的段寄存器时,可以使用段超越前缀取代其隐含约定。 MOV AX,ES:BP ;段地址在ES MOV AX,CS:BX SI ;段地址在CS,8086寻址方式其它方式(1),三、其它寻址方式 1、固定寻址(隐含寻址) 操作数并不直接出现在指令中,而是由操作码隐含地指定为某一固定内容。 例: PUSH DS 目操作数隐含为栈顶字单元 POP BX 源操作数隐含为栈顶字单元 LAHF 源操作数隐含为标志寄存器低字节, 目操作数隐含为寄存器AH,8

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

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

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