微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章

上传人:飞*** 文档编号:46185529 上传时间:2018-06-23 格式:PPT 页数:234 大小:2.89MB
返回 下载 相关 举报
微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章_第1页
第1页 / 共234页
微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章_第2页
第2页 / 共234页
微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章_第3页
第3页 / 共234页
微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章_第4页
第4页 / 共234页
微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章_第5页
第5页 / 共234页
点击查看更多>>
资源描述

《微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章》由会员分享,可在线阅读,更多相关《微机原理与接口技术,龚尚福,第二版 第2章 课件 第3章(234页珍藏版)》请在金锄头文库上搜索。

1、第3章 指令系统和寻址方式 第3章第1页共228页*第3章 指令系统和寻址方式 3.1 指令系统概述 3.2 8088/8086 CPU的寻址方式 3.3 8088/8086 CPU的指令系统 习题3 第3章 指令系统和寻址方式 第3章第2页共228页*3.1 指令系统概述程序是指令的有序集合,指令是程序的组成元素,通常一条指令对应着一种基本操作。一台计算机能执行什么样的操作,能做多少种操作,是由该计算机的指令系统决定的。一台计算机的指令集合,就是该计算机的指令系统。每种计算机都有自己固有的指令系统,互不兼容。但是同一系列的计算机其指令系统是向上兼容的。第3章 指令系统和寻址方式 第3章第3页

2、共228页*操作码字段:用来说明该指令所要完成的操作。地址码字段:用来描述该指令的操作对象。一般是直接给出操作数,或者给出操作数存放的寄存器编号,或者给出操作数存放的存储单元的地址或有关地址的信息。例如: ADD AX, BXOR AL, BL每条指令由两部分组成:操作码字段和地址码字段, 格式如图3.1所示。图3.1 指令格式操作码操作数(地址码)第3章 指令系统和寻址方式 第3章第4页共228页*根据地址码字段所给出地址的个数,指令格式可分为零地址、一地址、二地址、三地址和多地址指令格式。大多数指令需要双操作数,分别称两个操作数为源操作数和目的操作数,指令运算结果存入目的操作数的地址中。这

3、样,目的操作数的 原有数据将被取代。Intel 8086/8088的双操作数运算指令就采用这种二地址指令。指令中用于确定操作数存放地址的方法,称为寻址方式。如果地址码字段直接给出了操作数,这种寻址方式叫立即寻址;如果地址码字段指出了操作数所在的寄存器编号,叫寄存器寻址;如果操作数存放在存储器中,则地址码字段通过各种方式给出存储器地址,叫存储器寻址。第3章 指令系统和寻址方式 第3章第5页共228页*指令有机器指令和汇编指令两种形式。前一种形式由基2码(二进制)组成,它是机器所能直接理解和执行的指令。但这种指令不好记忆,不易理解,难写难读。因此,人们就用一些助记符来代替这种基2码表示的指令,这就

4、形成了汇编指令。汇编指令中的助记符通常用英文单词的缩写来表示,如加法用ADD、减法用SUB、传送用MOV等等,这些符号化了的指令使得书写程序、阅读程序、修改程序变得简单方便了。但计算机不能直接识别和执行汇编指令,在把它交付给计算机执行之前,必须翻译成计算机所能识别的机器指令。汇编指令与机器指令是一一对应的,本书中的指令都使用汇编指令形式书写,便于学习和理解。第3章 指令系统和寻址方式 第3章第6页共228页*3.2 8088/8086 CPU的寻址方式寻找和获得操作数、操作数存放地址或指令转移地址的方法称为寻址方式。8088/8086 CPU的寻址分为两类,即数据寻址和指令寻址。指令寻址方式将

5、在3.3.5节结合控制转移指令加以讨论。机器执行指令的目的就是对指定的操作数完成规定的操作,将操作结果存入规定的地方。因此,如何获得操作数的存放地址及操作结果的存放地址就是一个很关键的问题。8088/8086 CPU有多种方法来获取操作数的存放地址及操作结果的存放地址,这些方法统称为数据寻址方式。第3章 指令系统和寻址方式 第3章第7页共228页*操作数及操作结果存放的地点有三处:存放在指令的地址码字段中;存放在寄存器中;存放在存储器的数据段、堆栈段或附加数据段中。与其对应的三种操作数是:立即操作数、寄存器操作数和存储器操作数。寻找这些操作数有三种基本寻址方式,立即寻址方式、寄存器寻址方式和存

6、储器寻址方式。其中,存储器寻址又包括多种寻址方式。下面分别介绍这些寻址方式。第3章 指令系统和寻址方式 第3章第8页共228页*3.2.1 立即寻址方式立即寻址方式寻找的操作数紧跟在指令操作码之后。这种寻址方式在汇编语言格式中表示为:操作码 数字表达式其中,这个数字表达式的值可以是一个8位整数,也可以是 一个16位整数,这种寻址方式主要用于给寄存器、存储单元赋初值。【例3-1】MOV AX,267;常数MOV AL,10010011B AND 0FEH ;表达式MOV AL,PORT1 ;变量名MOV AX,DATA1;段地址第3章 指令系统和寻址方式 第3章第9页共228页*【例3-2】 M

7、OV AL,0FFH 操作的示意图如图3.2所示。【例3-3】MOV AX,1234H 操作的示意图如图3.3所示。图3.2 8位立即寻址操作示意图图3.3 16位立即寻址操作示意图注意:这种寻址方式不能用于单操作数指令。若用于双操作数 指令,也只能用于源操作数字段,不能用于目的操作数字段。第3章 指令系统和寻址方式 第3章第10页共228页*3.2.2 寄存器寻址方式寄存器寻址是指寻找的操作数在某个寄存器中。这种寻址方式在汇编语言格式中表示为:操作码 寄存器名比如AL,BX,CX,DS、IP等等。【例3-4】MOV AX,BXMOV AL,BL其中AX,BX是16位寄存器寻址方式;AL,BL

8、是8位寄存器寻址方式。第3章 指令系统和寻址方式 第3章第11页共228页*这种寻址方式的优点是:寄存器数量一般在几个到几十个,比存储器单元少很多,因此它的地址码短,从而缩短了指令长度,节省了程序存储空间;另一方面,从寄存器里取数比从存储器里取数的速度快得多,从而提高了指令执行速度。第3章 指令系统和寻址方式 第3章第12页共228页*3.2.3 存储器寻址方式当操作数放在存储器中的某个单元时,CPU要访问存储器才能获得该操作数。如果存储器的存储单元地址是20位,把通过各种方法算出段内偏移地址(有效地址),结合段地址形成20位物理地址找到操作数的方法,统称为存储器寻址方式。1. 直接寻址方式直

9、接寻址方式是指寻找的操作数的地址在指令中直接给出。这种寻址方式在汇编格式中表示为 操作码 地址表达式 (或地址表达式) 操作码 数字表达式第3章 指令系统和寻址方式 第3章第13页共228页*【例3-5】 假设TABLE是在数据段定义的一个字节数组的首地址标号(变量名),其偏移地址为1000H,则指令MOV AL,TABLE 或 MOV AL,TABLE+2或MOV AL,TABLE 或 MOV AL,TABLE+2或MOV AL,1000H 或 MOV AL,1000H+2是等效的。其中TABLE、TABLE、1000H、TABLE+2、TABLE+2和1000H+2都是直接寻址方式。思考:

10、MOV AX, 1000H 与 MOV AX, 1000H的区别?假设1000H单元内容为25H, 1001H单元内容为89H, 则上面两条指令执行后AX的内容分别为什么?第3章 指令系统和寻址方式 第3章第14页共228页*【例3-6】 MOV AX,1000H如果(DS)=3000H,(31000H)=12H,(31001H)=34H,则指令执行完以后,(AX)=3412H。直接寻址方式默认的段寄存器是DS。IBM-PC机允许在汇编指令中指定除DS寄存器以外的段寄存器作为操作数的段地址,这就是段超越前缀,其汇编格式为:段寄存器名:地址表达式 或:段寄存器名:数字表达式或 段寄存器名:地址表

11、达式 或:段寄存器名:数字表达式第3章 指令系统和寻址方式 第3章第15页共228页*【例3-7】 假设TABLE是在附加数据段定义的一个字节数组的首地址标号,其偏移地址为1000H,则指令MOV AL,ES:TABLE 或MOV AL,ES:TABLE 或MOV AL,ES:1000H或MOV AL,ES:1000H 是等效的,都表示将存放在附加段的字节数组的第一个数组元素送入AL寄存器中。第3章 指令系统和寻址方式 第3章第16页共228页*2. 寄存器间接寻址方式在计算机中通常将BX、BP称为基址寄存器,SI、DI称为变址寄存器,寻址时操作数的地址被放在这些寄存器中。寄存器间接寻址方式在

12、汇编格式中表示为:基址寄存器名或变址寄存器名【例3-8】MOV AX,BXMOV AX,SI MOV DI, BX其中,BX、SI、DI都是寄存器间接寻址方式。 注意:寄存器寻址和寄存器间接寻址的区别:MOV AX, BXMOV AX, BX ,假设(BX)=1000H, 则这两条指令 执行后的结果?1000H1234第3章 指令系统和寻址方式 第3章第17页共228页*如果指令中指定的寄存器是BX、SI、DI,则操作数默认在数据段中,取DS寄存器的值作为操作数的段地址值;如果指令中指定的寄存器是BP,则操作数默认在堆栈段中,取SS寄存器的值作为操作数的段地址值,从而算得操作数的20位物理地址

13、,继而访问到操作数。第3章 指令系统和寻址方式 第3章第18页共228页*【例3-9】 MOV AX,BX如果(DS)=3000H,(BX)=1010H,(31010H)=12H, (31011H)=24H,则操作数的20位物理地址为: 30000H+1010H=31010H。操作的示意图如图3.4所示。12H存储器 30000H24H数据段31010HAX图3.4 寄存器间接寻址操作图指令执行完以后,(AX)=2412H。 1224第3章 指令系统和寻址方式 第3章第19页共228页*这种寻址方式也允许指定段超越前缀来取得其他段中的数 据。 【例3-10】 MOV AX,ES:BX它表示将附

14、加数据段偏移量(BX)处的字数据送到AX寄存器中去。 寄存器间接寻址方式一般用于访问表格,执行完一条指令后,通过修改SI、DI、BX或BP的内容就可访问到表格的下一数据项的存储单元。第3章 指令系统和寻址方式 第3章第20页共228页*3. 寄存器相对寻址操作数的偏移地址是指定寄存器的值与一个整数之和。这种寻址方式的汇编格式为: 变量名基址寄存器名或变址寄存器名或 变量名+基址寄存器名或变址寄存器名 符号名基址寄存器名或变址寄存器名或 基址寄存器名或变址寄存器名+符号名 基址寄存器名或变址寄存器名数字表达式第3章 指令系统和寻址方式 第3章第21页共228页*【例3-11】 TABLE是在数据

15、段定义的一个字节数组的首地址标号(也称变量名),则有如下程序:MOV SI,5MOV AL,TABLESI ;可以写为:MOV AL,TABLE+SIABC EQU 5LEA SI,TABLE ;LEA是取偏址指令,本句是把TABLE偏址SIMOV AL,ABCSI ;可以写为:MOV AL,ABC+SI如:BX+6、BP-100H、SI+OFFSET TABLE都是寄存器相对寻址方式。第3章 指令系统和寻址方式 第3章第22页共228页*如果指令中指定的寄存器是BX、SI、DI,则操作数默认在数据段中,取DS寄存器的值作为操作数的段地址值;如果指令中指定的寄存器是BP,则操作数默认在堆栈段中,取SS寄存器的值作为操作数的段地址值,从而算得操作数的20位物理地址,继而访问到操作数。第3章 指令系统和寻址方式 第3章第23页共228页*【例3-12】 TABLE是数据段中定义的一个变量,假设它在 数据段中的偏移地址为0100H,有指令:MOV AX,TABLESI若(DS)=2000H,(SI)=00A0H,(201A0H)=12H, (201A1H)=34H,则源操作数20位物理地址 =20000H+0100H+00A0H=20000H+01A0H=201A0H。当然,也可用段超越前缀重新指定

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

当前位置:首页 > 资格认证/考试 > 其它考试类文档

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