习题2习题解答 2.1哪两部分组成?它们的主要功能各是什么 解:8086CPU由总线接口部件BU( Bus Interface Unit)和执行部件EU( Execution Un 两大部分组成。总线接口部件的主要功能是形成物理地址、预取指令、指令队列排队、 写操作数和总线控制。执行部件的主要功能是进行指令译码并执行指令。 2.28086CPU中有哪些寄存器?各有什么用途?标志寄存器 FLAGS有哪些标志位?在 什么情况下置位? 解:8086CPU中的寄存器如教材图2-2所示: 15 AX 数据寄存器 堆栈指针 指针寄存器 通用寄存器 基址指针 源变址 变址寄存器 DI 目的变址 指令指针 FLAG 标志寄存器 代码段寄存器 堆栈段寄存器 段寄存器 数据段寄存器 附加段寄存器 图228086CPU内部寄存器 其用途可参考教材 标志寄存器( FLAGS)用于反映指令执行结果的状态,常用作后续条件转移指令的转移控 制条件。标志寄存器为16位,实际使用了其中的9位,所用各位的含义如教材中图23所 OF DF IF TF SFZF AF CF 15141312111098765 图23标志寄存器 FLAGS 2.3什么是逻辑地址?什么是物理地址?如何将逻辑地址转换为物理地址?
习题 2 习题解答 2.1 哪两部分组成?它们的主要功能各是什么? 解:8086CPU 由总线接口部件 BIU (Bus Interface Unit)和执行部件 EU (Execution Unit) 两大部分组成。总线接口部件的主要功能是形成物理地址、预取指令、指令队列排队、读/ 写操作数和总线控制。执行部件的主要功能是进行指令译码并执行指令。 2.2 8086CPU 中有哪些寄存器?各有什么用途?标志寄存器 FLAGS 有哪些标志位?在 什么情况下置位? 解:8086CPU 中的寄存器如教材图 2-2 所示: 其用途可参考教材。 标志寄存器(FLAGS)用于反映指令执行结果的状态,常用作后续条件转移指令的转移控 制条件。标志寄存器为 16 位,实际使用了其中的 9 位,所用各位的含义如教材中图 2-3 所 示。 2.3 什么是逻辑地址?什么是物理地址?如何将逻辑地址转换为物理地址?
解:逻辑地址是指在程序和指令中使用的一种地址,它包括两部分:段基地址和偏移地 址。段基地址说明每段在主存中的起始位置,它来自于段寄存器(CS、DS、ES、SS)。偏移 地址说明主存单元距离段起始位置的偏移量。它是一个16位的偏移地址,根据指令的不同, 它可以来自于8086CPU中不同的16位寄存器IP、SP、BP、SI、D、BX等。 物理地址是指CPU对存储器进行访问时实际寻址所使用的地址,物理地址是由段寄存 器与偏移地址共同确定的。在实际工作时,从段寄存器中取出段基址,将其左移4位,再与 16位偏移地址相加,就得到了物理地址,此地址在CPU总线接口部件BIU的20位地址加 法器中形成。物理地址的计算方法为:物理地址=段基地址×16+偏移地址。 24设X=35H,Y=76H,进行X+Y和XY运算后,标志寄存器 FLAGS的状态标志位 各是什么? 解:Ⅹ+Y=0ABH 各标志位分别为:OF=1,SF=1,ZF=0,AF=0,PF=0, X-Y=0BFH,各标志位分别为:OF=0,SF=1,ZF=0,AF=1,PF=0,CF 2.58086有哪4个逻辑段?各种逻辑段分别是什么用途? 解:在8086的程序设计中,一个程序可以有代码段CS、数据段SS、堆栈段SS和附加 段ES 代码段CS用于存放程序; 数据段SS和附加段ES用于存放数据 堆栈段SS用于存放数据(包括暂存数据和保护现场的数据)。 在形成物理地址时,CS、DS、ES和SS四个段寄存器的作用如下:当取指令时,CPU 以CS寄存器的值作段基址,再加上IP中的16位偏移地址,得到指令的物理地址:当进行 堆栈操作时,段基地址CPU以SS为堆栈段的基地址,偏移地址由SP或BP来指定,当访 问存储器的数据段时,数据段寄存器DS或附加段寄存器ES,再加上16位偏移地址,得到 操作数的物理地址 2.6请将如下逻辑地址用物理地址表示 (1) FFFFH:0(2)45H:18H(3)2000H:4600H(4)B82lH:3456H 解:用PA表示物理地址,PA=段基地址×16+偏移地址 (1) PA=FFFFHX16+0000H=FFFFOH (2)PA=45H×16+18H=468H (3)PA=2000H×16+4600H=24600H (4)PA=B82IH×16+3456H=BB666H 2.7若8086CPU工作于最小模式,试指出当CPU将AH的内容送到物理地址为91001 的存储单元时,以下哪些信号应为低电平:M0、RD、wR、BHE/S7、DT/R。若CPU 完成的是将物理地址91000H单元的内容读入AL中时,则上述哪些信号应为低电平 解:当CPU将AH的内容送到物理地址为91001H的存储单元时,CPU完成的是写存 储器操作,且完成的是访问存储器的奇地址,因此,WR=0,BHE/S7=0 若CPU完成的是将物理地址91000H单元的内容读AL中时,CPU完成的是读存储器 操作,且完成的是访问存储器的偶地址,因此,RD=0,DT/R=0
解:逻辑地址是指在程序和指令中使用的一种地址,它包括两部分:段基地址和偏移地 址。段基地址说明每段在主存中的起始位置,它来自于段寄存器(CS、DS、ES、SS)。偏移 地址说明主存单元距离段起始位置的偏移量。它是一个 16 位的偏移地址,根据指令的不同, 它可以来自于 8086CPU 中不同的 16 位寄存器 IP、SP、BP、SI、DI、BX 等。 物理地址是指 CPU 对存储器进行访问时实际寻址所使用的地址,物理地址是由段寄存 器与偏移地址共同确定的。在实际工作时,从段寄存器中取出段基址,将其左移 4 位,再与 16 位偏移地址相加,就得到了物理地址,此地址在 CPU 总线接口部件 BIU 的 20 位地址加 法器中形成。物理地址的计算方法为:物理地址=段基地址×16+偏移地址。 2.4 设 X=35H,Y=76H,进行 X+Y 和 X-Y 运算后,标志寄存器 FLAGS 的状态标志位 各是什么? 解:X+Y=0ABH , 各标志位分别为:OF=1,SF=1,ZF=0,AF=0,PF=0, CF=0 X-Y=0BFH, 各标志位分别为:OF=0,SF=1,ZF=0,AF=1,PF=0,CF =1 2.5 8086 有哪 4 个逻辑段?各种逻辑段分别是什么用途? 解:在 8086 的程序设计中,一个程序可以有代码段 CS、数据段 SS、堆栈段 SS 和附加 段 ES。 代码段 CS 用于存放程序; 数据段 SS 和附加段 ES 用于存放数据; 堆栈段 SS 用于存放数据(包括暂存数据和保护现场的数据)。 在形成物理地址时,CS、DS、ES 和 SS 四个段寄存器的作用如下:当取指令时,CPU 以 CS 寄存器的值作段基址,再加上 IP 中的 16 位偏移地址,得到指令的物理地址;当进行 堆栈操作时,段基地址 CPU 以 SS 为堆栈段的基地址,偏移地址由 SP 或 BP 来指定,当访 问存储器的数据段时,数据段寄存器 DS 或附加段寄存器 ES,再加上 16 位偏移地址,得到 操作数的物理地址。 2.6 请将如下逻辑地址用物理地址表示: (1)FFFFH:0 (2)45H:18H (3) 2000H:4600H (4)B821H:3456H 解:用 PA 表示物理地址,PA=段基地址×16+偏移地址 (1) PA=FFFFH×16+0000H=FFFF0H (2)PA=45H×16+18H=468H (3)PA=2000H×16+4600H=24600H (4)PA=B821H×16+3456H=BB666H 2.7 若 8086CPU 工作于最小模式,试指出当 CPU 将 AH 的内容送到物理地址为 91001H 的存储单元时,以下哪些信号应为低电平:M/ IO、 RD 、 WR 、BHE /S7、DT/ R 。若 CPU 完成的是将物理地址 91000H 单元的内容读入 AL 中时,则上述哪些信号应为低电平。 解:当 CPU 将 AH 的内容送到物理地址为 91001H 的存储单元时,CPU 完成的是写存 储器操作,且完成的是访问存储器的奇地址,因此, WR =0,BHE /S7=0; 若 CPU 完成的是将物理地址 91000H 单元的内容读 AL 中时,CPU 完成的是读存储器 操作,且完成的是访问存储器的偶地址,因此, RD =0,DT/ R =0
2.8什么是引脚的分时复用?请说出8086CPU有哪些引脚是分时复用引脚?如何分时 复用? 解:8086的数据线和地址线是利用复用的,所以常把8086的总线称为多路总线,即某 时刻总线上出现的是地址,另一时刻,总线上出现的是数据。正是这种引脚的分时使用方 法才能使8086用40条引脚实现20位地址、16位数据及众多的控制信号和状态信号的传输。 8086CPU的分时复用的引脚有:地址/数据复用引脚是:AD5~AD0,在总线周期的T 状态,传送地址信息,在其它状态则传送数据信息 地址/状态复用引脚是:A1/S6~Ai6/S3,这些引脚在总线周期的T1状态输出地址的高4 位,在总线的T、T、Tw和T4状态时,用来输出状态信息。 29试说明8086CPU工作在最大和最小模式下系统基本配置的差异 解:8086CPU可以工作在两种工作模式,即最小工作模式和最大工作模式。最小工作 模式用于单机系统,系统中所有总线控制信号全部由8086直接提供,因此系统中的总线控 制电路可减到最少;最大工作模式用于多处理机系统,8086作为主处理器,其它的处理器 为协处理器,协助主处理器工作。在最大工作模式下,系统所需要的控制信号均由总线控制 器8288提供 8086具体工作在最大模式还是最小模式,完全由硬件连接决定。当将CPU的第33号 引脚MNMX接+5V时,8086工作在最小模式,当MNMX接地时,8086工作在最大模 式 2.10分析8086CPU两个中断输入引脚的区别,以及各自的使用场合 解:ⅠTA是中断响应信号,输出,三态,低电平有效。该信号是CPU响应中断请求后 向中断源发出的中断响应信号,用以通知中断控制器,以便由中断控制器提供中断类型号。 在每个中断响应周期,CPU在NTA引脚上发出两个连续的负脉冲 ④DNM是非屏蔽中断请求信号,输入,正跳变有效。这类中断不受中断允许标志IF的 影响,也不能用软件进行屏蔽。当NM引脚收到一个正沿触发信号时,CPU就会在结束当 前指令后引起中断,执行中断类型号2的非屏蔽中断处理程序
2.8 什么是引脚的分时复用?请说出 8086CPU 有哪些引脚是分时复用引脚?如何分时 复用? 解:8086 的数据线和地址线是利用复用的,所以常把 8086 的总线称为多路总线,即某 一时刻总线上出现的是地址,另一时刻,总线上出现的是数据。正是这种引脚的分时使用方 法才能使 8086 用 40 条引脚实现 20 位地址、16 位数据及众多的控制信号和状态信号的传输。 8086CPU 的分时复用的引脚有:地址/数据复用引脚是:AD15~AD0,在总线周期的 T1 状态,传送地址信息,在其它状态则传送数据信息; 地址/状态复用引脚是:A19/S6~A16/S3,这些引脚在总线周期的 T1 状态输出地址的高 4 位,在总线的 T2、T3、TW 和 T4 状态时,用来输出状态信息。 2.9 试说明 8086CPU 工作在最大和最小模式下系统基本配置的差异。 解:8086CPU 可以工作在两种工作模式,即最小工作模式和最大工作模式。最小工作 模式用于单机系统,系统中所有总线控制信号全部由 8086 直接提供,因此系统中的总线控 制电路可减到最少;最大工作模式用于多处理机系统,8086 作为主处理器,其它的处理器 为协处理器,协助主处理器工作。在最大工作模式下,系统所需要的控制信号均由总线控制 器 8288 提供。 8086 具体工作在最大模式还是最小模式,完全由硬件连接决定。当将 CPU 的第 33 号 引脚 MN/ MX 接+5V 时,8086 工作在最小模式,当 MN/ MX 接地时,8086 工作在最大模 式。 2.10 分析 8086CPU 两个中断输入引脚的区别,以及各自的使用场合。 解: INTA 是中断响应信号,输出,三态,低电平有效。该信号是 CPU 响应中断请求后, 向中断源发出的中断响应信号,用以通知中断控制器,以便由中断控制器提供中断类型号。 在每个中断响应周期,CPU 在 INTA 引脚上发出两个连续的负脉冲。 ⑿NMI 是非屏蔽中断请求信号,输入,正跳变有效。这类中断不受中断允许标志 IF 的 影响,也不能用软件进行屏蔽。当 NMI 引脚收到一个正沿触发信号时,CPU 就会在结束当 前指令后引起中断,执行中断类型号 2 的非屏蔽中断处理程序