《微型计算机原理及其接口技术》导学资料二(第3章-第4章)
发布时间:2023-10-31 12:10:57浏览次数:50《微型计算机原理及其接口技术》导学资料二(第三章-第四章)各位同学,现在我们开始第二阶段内容的学习,在这阶段的学习中,希望大家能认真学习课件中的相关内容,在理解的基础上,认真复习本阶段的练习题,学习中如有不明白或不理解的地方,可以到课程论坛里提问交流。一、本阶段学习内容概述8086/8088MPU 的指令系统,指令的寻址方式与指令的使用。8086/8088 汇编语言程序设计的基本方法。在内容上从应用角度出发,给出相应的编程实例。二、重难点讲解计算机系统中有七种基本的寻址方式:立即寻址方式、寄存器寻址方式、直接寻址方式、寄存器间接寻址方式、寄存器相对寻址方式、基址加变址寻址方式和相对基址加变址寻址方式。其中,后五种寻址方式是确定内存单元有效地址的五种不同的计算方法,用它们可方便地实现对数组元素的访问。1、立即寻址 操作数(为一常数)直接由指令给出 (此操作数称为立即数)立即寻址只能用于源操作数例:MOV AX, 1C8FHMOV BYTE PTR[2A00H], 8FH错误例: MOV 2A00H,AX ; (×)指令操作例:MOV AX,3102H; AX3102H执行后,(AH) = 31H,(AL) = 02H2、寄存器寻址(1)操作数放在某个寄存器中(2)源操作数与目的操作数字长要相同(3)寄存器寻址与段地址无关
例: MOV AX, BX MOV [3F00H], AX MOV CL, AL 错误例: × MOV AX,BL ; 字长不同× MOV ES:AX,DX ; 寄存器与段无关3、直接寻址(1)指令中直接给出操作数的 16 位偏移地址 偏移地址也称为有效地址(EA, Effective Address)(2)默认的段寄存器为 DS,但也可以显式地指定其他段寄存器称为段超越前缀(3)偏移地址也可用符号地址来表示,如 ADDR、VAR例: MOV AX ,[2A00H] MOV DX ,ES:[2A00H]MOV SI,TABLE_PTR4、间接寻址 操作数的偏移地址(有效地址 EA)放在寄存器中 只有 SI、DI、BX 和 BP 可作间址寄存器 例: MOV AX,[BX] MOV CL,CS:[DI] 错误例 :× MOV AX, [DX] × MOV CL, [AX]5、直接变址寻址EA=间址寄存器的内容加上一个 8/16 位的位移量 例: MOV AX, [BX+8] MOV CX, TABLE[SI] MOV AX, [BP]; 默认段寄存器为 SS 指令操作例:MOV AX,DATA[BX] 若(DS)=6000H, (BX)=1000H, DATA=2A00H,
(63A00H)=66H, (63A01H)=55H 则物理地址 = 60000H + 1000H + 2A00H = 63A00H指令执行后:(AX)=5566H6、基址变址寻址 若操作数的偏移地址:由基址寄存器(BX 或 BP)给出 基址寻址方式由变址寄存器(SI 或 DI)给出 变址寻址方式由一个基址寄存器的内容和一个变址寄存器的内容相加而形成操作数的偏移地址,称为基址-变址寻址。EA=(BX)+(SI)或(DI);EA=(BP)+(SI)或(DI)同一组内的寄存器不能同时出现。注意:除了有段跨越前缀的情况外,当基址寄存器为 BX 时,操作数应该存放在数据段 DS 中,当基址寄存器为 BP 时,操作数应放在堆栈段 SS 中。例: MOV AX, [BX] [SI] MOV AX, [BX+SI] MOV AX, DS: [BP] [DI]错误例: × MOV AX, [BX] [BP] × MOV AX, [DI] [SI]指令操作例:MOV AX,[BX][SI]假定:(DS)=8000H, (BX)=2000H, SI=1000H则物理地址 = 80000H + 2000H + 1000H = 83000H指令执行后: (AL)=[83000H](AH)=[83001H]7、相对基址变址寻址 在基址-变址寻址的基础上再加上一个相对位移量EA=(BX)+(SI)或(DI)+8 位或 16 位位移量;EA=(BP)+(SI)或(DI)+8 位或 16 位位移量
指令操作例:MOV AX,DATA[DI][BX]若(DS)=8000H, (BX)=2000H, (DI)=1000H, DATA=200H则指令执行后(AH)=[83021H], (AL)=[83020H]寄存器间接、寄存器相对、基址变址、相对基址变址四种寻址方式的比较: 寻址方式 指令操作数形式 寄存器间接 只有一个寄存器(BX/BP/SI/DI 之一) 寄存器相对 一个寄存器加上位移量 基址—变址 两个不同类别的寄存器 相对基址-变址 两个不同类别的寄存器加上位移量三、本阶段综合练习【题型】简答题【题干】8086/8088 系列微型计算机在存储器中寻找存储单元时,逻辑地址由哪两个部分组成?【答案】逻辑地址由段基址和偏移量组成。【题型】简答题总线周期的含义是什么?8086/8088CPU 的基本总线周期由几个时钟组成?【答案】CPU 访问总线(从内存储器或 I/O 端口读/写字节或字)所需要的时间称为总线周期,8086/8088CPU 的基本总线周期由 4 个时钟周期组成。【题型】简答题程序控制的数据传送可分为?【答案】无条件传送、查询传送、中断传送【题型】简答题什么是指令队列?它的作用是什么?
【答案】指令队列用于存放内存中取下的将被执行的下一条或下几条指令。作用:使 CPU 执行完一条指令就可立即执行下一条,以提高 CPU 的效率。【题型】简答题子程序说明中必须包括的部分有?【答案】功能描述,所用存储器和存储单元,子程序的入口、出口参数。【题型】填空题寄存器间接寻址方式中,操作数处在_______________。【答案】主存单元;【题型】填空题_______________是指 CPU 从主存取出一条指令加上执行该条指令的时间。【答案】指令周期;【题型】填空题8086CPU 内部的 4 个专用寄存器是 CS 、DS 和 SS 及_______________。【答案】ES;【题型】填空题每一条指令一般都由_______________和操作数构成。【答案】
操作码;【题型】填空题汇编程序的上机步骤是编辑、汇编、连接、_______________、调试。【答案】运行;【题型】填空题80386 内部有_______________个寄存器(含保留的寄存器)。【答案】40;【题型】填空题8086 微处理器寻址 I/O 端口最多使用_______________条地址线。【答案】16;【题型】填空题汇编程序的上机步骤是编辑、汇编、连接、运行、_______________。【答案】调试;【题型】填空题指令 MOV AL,[23H]的源操作数采用的是_______________寻址方式。【答案】直接寻址;【题型】填空题8086/8088 的 ALE 引脚的作用是_______________。【答案】
锁存复用线上的地址;【题型】填空题CPU 与外设交换信息时,有 3 种常见的输入输出方法,它们分别是:程序控制的输入输出方式、 DMA 工作方式和_______________。【答案】中断传送方式;【题型】填空题CPU 与外设交换信息时,有 3 种常见的输入输出方法,它们分别是:程序控制的输入输出方式、中断传送方式和_______________。【答案】DMA 工作方式;【题型】填空题若对某一寄存器某几位清零可用指令是_______________。【答案】AND;【题型】填空题CPU 与外设传送的 3 种信息分别是数据信息、控制信息和_______________。【答案】状态信息;【题型】填空题8086/8088 系列微型计算机在存储器中寻找存储单元时,逻辑地址由段基址和_______________组成。【答案】偏移量;
【题型】填空题指令采用直接寻址方式寻址方式时的操作数是在_______________中。【答案】存储器;【题型】填空题执行指令 XOR AX,AX 之后,ZF 的值是_______________。【答案】1;【题型】综合应用题下面这些指令中那些是正确的?那些是错误的?若是错误的,请说明原因?1)、XCHG CS,AX2)、MOV [BX],[1000]3)、XCHG BX,IP4)、PUSH CS5)、POP CS6)、IN BX,DX7)、MOV BYTE[BX],10008)、MOV CS,[1000]【答案】1)、错误,CS 不能交换 2)、错误,MOV 指令不能在内存间传送 3)、错误,IP 不能交换 4)、错误,CS 不能作为 PUSH 指令的操作数 5)、错误,CS 不能作为 POP 指令的操作数 6)、错误,IN 指令的目的操作数是累加器 7)、错误,目的操作数是字节单元 8)、错误,CS 不能作为 MOV 指令的目的操作数【题型】综合应用题VAR1 是偏移为 20H 的字变量,CON1 是字节常量。请指出下列指令中源操作数的寻址方式,若源操作数
为 存 储 器 操 作 数 , 写 出 物 理 地 址 的 计 算 公 式 。 ( 1 ) MOV AL , WORD PTR[BP] ( 2 ) MOVAL,CON1(3)INC VAR1(4)ADD AX,WORD PTR SS:VAR1[BX+DI] (5)MOV AX, VAR1[BX]【答案】(1)MOV AL, WORD PTR[BP]源操作数: 寄存器间接 寻址;源操作数的物理地址 PA= (SS)×10H+(BP) (2)MOV AL,CON1 源操作数:立即数 寻址;源操作数的物理地址 PA= (无,不写) (3)INCVAR1 操作数: 直接 寻址;源操作数的物理地址 PA= (DS)×10H+20H (4)ADD AX,WORD PTR SS:VAR1[BX+DI]源操作数: 基址变址相对 寻址;源操作数的物理地址 PA= (SS)×10H+(BX)+(SI)(5)MOV AX, VAR1[BX]源操作数:寄存器相对 寻址;源操作数的物理地址 PA= (DS)×10H+(BX)+20H