A.T1 和T2 B.T2 和T3 C.T3 和T4 D.随机 5.8086/8088 CPU中标志寄存器的主要作用是( D )。 A.检查当前指令的错误 C.决定是否停机
B.纠正当前指令执行的结果与错误
D.产生影响或控制某些后续指令所需的标志
6.8086最小模式下的存储器读周期中地址锁存发生在总线周期的( A )时刻。 A.T1 B.T2 C.T3 D.T4 7.指令指针IP的作用是( A )。 A.保存将要执行的下一条指令的地址 C.保存运算器运算结果内容
B.保存CPU要访问的内存单元地址 D.保存正在执行的一条指令
8.8086CPU有两种工作模式,最小模式的特点是( A )。 A.CPU提供全部控制信号 B.由编程进行模式设定 C.不需要8282收发器
D.需要总线控制器8288
三、简答题
1.8086/8088 CPU 分为哪两个部分?如何协调工作?
答:EU是执行部件,主要的功能是执行指令和形成有效地址。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。
2.8086/8088 CPU的地址总线有多少位?其寻址范围是多少? 答:8086/8088 CPU的地址总线共20 位,最大可寻址1MB空间。
3.8086/8088 CPU使用的存储器为什么要分段?怎么分段?
答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址?
实际使用的解决办法是:将1MB大小的存储空间分为若干―段‖,每段不超过64KB。这样,一个20位的物理地址就可以用―16位段基址:16位偏移量‖的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。
4.8086/8088 CPU 中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?
5
答:8086/8088 CPU 中共有:
8个16位的通用寄存器AX、BX、CX、DX 、BP、SP、SI、DI; 2个变址寄存器SI、DI; 2个指针寄存器BP、SP;
其中BX、BP、SI、DI 亦可作地址寄存器。
5.Intel 8086与8088有何区别?
答:8086与8088的区别主要表现在以下几个方面:
第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码。
第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位。注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同。
第三、其他不同的引脚定义:(1)AD15~AD0,在8086中为地址/数据复用,而在8088中AD15~AD8 改为A15~A8只作地址线用;(2)34、28号引脚定义不同。
6.8086/8088CPU工作在最小模式时:当CPU访问存储器时,要利用哪些信号?当CPU访问外设接口时,要利用哪些信号?
M/IO、答:8086/8088 CPU工作在最小模式时,若访问存储器,需用到以下信号:
ALE、DT/R、DEN、READY、BHE、WR、RD、AD0~AD15、A19/S6~A16/S3。若访问外设,需用到以下信号:M/IO、ALE、DT/R、DEN、READY、WR、RD、AD0~AD15。
7.试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别: (1)1278H+3469H
答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1 (2)54E3H-27A0H
答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=0 (3)3881H+3597H
答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1 (4)01E3H-01E3H
答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1
其中,进位标志CF 用于判别无符号数运算是否超出数的表示范围,而溢出标志OF 用于判别带符号数运算是否超出数的表示范围。
奇偶标志PF 只能判断结果低8 位中―1‖的个数为奇数还是偶数。
6
8.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处? 答:逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。
由于8086/8088CPU 中的寄存器只有16 位长,所以程序不能直接存放20 位的物理地址,而必须借助逻辑地址,即用两个16 位的寄存器来表示物理地址。他们之间的关系是:物理地址=段基址*16+偏移量;另外,一个物理地址可对应多个逻辑地址。
9.设现行数据段位于存储器0B0000H~0BFFFFH 单元,DS 段寄存器内容为多少?
答: DS 段寄存器内容为0B000H。
10.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C0E0H,求出该内存单元的物理地址。
答:物理地址:0C2EC0H。
11.8086/8088为什么采用地址/数据引线复用技术?
答:考虑到芯片成本和体积,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。
12.怎样确定8086的最大或最小工作模式?
答:引线MNMX的逻辑状态决定8086的工作模式,MNMX引线接高电平,8086被设定为最小模式,MNMX引线接低电平,8086被设定为最大模式。
13.8086基本总线周期是如何组成的?
答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。
14.在基于8086的微计算机系统中,存储器是如何组织的?存储器是如何与处理器总线连接的?BHE信号起什么作用?
答:8086为16位微处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接D7~D0,―体选‖信号接地址线A0;奇体的数据线连接D15~D8,―体选‖信号接BHE
7
信号;A0信号有效时允许访问偶体中的低字节存储单元,BHE信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。
15.有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的实际地址PA。
首单元地址:610A0H+1CE7H=62D87H 末单元地址:62D87H+27H=62DAEH
16.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H和00135H,试画出它们的存储器示意图。
地址 00130H 00131H 00132H 00133H 00134H 00135H 00136H
内容 0DAH 31H 7F 5E
17.试说明8086CPU的控制引脚ALE的作用。
答:8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位地址线通过锁存器保存,以形成系统地址总线。
8
第3章 8086/8088CPU指令系统
一、判断题
1.MOV AX,[BP]的源操作数物理地址为16×(DS)+(BP)。 (×) 2.OUT DX,AL指令的输出是16位操作数。 3.不能用立即数给段寄存器赋值。 5.堆栈指令的操作数均为字。
4.所有传送指令都不影响PSW寄存器的标志位。 6.段内转移指令执行结果要改变IP,CS的值。
(×) (√) (×) (√) (×)
二、单项选择题
1.寄存器间接寻址方式中,操作数在(C)中。
A. 通用寄存器 B. I/O端口 C. 存储单元 D. 段寄存器 2.(A)寻址方式的跨段前缀不可省略。
A. DS:[BP] B. DS:[SI] C. DS:[DI] D. SS:[BP]
3.假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSH AX后,(SP)=(C)。
A. 0014H B. 0011H C. 0010H D. 000FH
4.用BP作基址变址寻址时,操作数所在的段是当前(C)。 A. 数据段 B. 代码段 C. 堆栈段 D. 附加段
5.已知(IP)=1000H,CF=0,则执行指令JNC Short label后,下列各数中哪一个是可能的IP值?(B)
(A)0FFFFH MOV MOV ROL DEC MOV MUL HLT
A. 8D00H B. 9260H C. 8CA0H D. 0123H
7.设(AL)= - 68,(BL)= 86,执行SUB AL,BL 指令后,正确的结果是(C)。 A. CF =1 B. SF =1 C. OF =1 D. ZF =1
8.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEA
AX,[SI]执行后(AX)=( C )。
A. 0002H B. 0005H C. 0004H D. C302H 9.条件转移指令JNE的条件是( C )。
9
(B)0FFEH (C)10FEH (D)1100H
6.执行下列指令后,(AX)=(A)。
AX,1234H CL,4 AX,CL AX CX,4 CX