1、微型计算机原理习题参考答案- 1 -CH01 微型计算机概述习题与思考题1微型计算机由哪些部件组成?各部件的主要功能是什么?解答:算术 逻辑部件(ALU)微处理器累加器、 寄存器(CPU)控制器系统总线:AB、CB、DB(功能:为 CPU 和其他部件之间提供数据、地址微型计算机 和控制信息的传输通道)微机系统输入/输出(I/O)接口:串/并行接口等(功能:使外部设备和微型机相连)存储器:只读存储器(ROM) 、随机存储器(RAM)(功能:用来存储信息)操作系统(OS)系统软件系统实用程序:汇编、编译、编辑、调试程序等外围设备:打印机、键盘、CRT、磁盘控制器等(注:CPU 的功能可以进行算术和
2、逻辑运算;可保存少量数据;能对指令进行译码并执行规定的动作;能和存储器、外设交换数据;提供整修系统所需要的定时和控制;可以响应其他部件发来的中断请示。 )2 8086/8088 CPU 由哪两部分组成?它们的主要功能各是什么?是如何协调工作的?解答:总线接口部件(BIU):负责与存储器、I/O 端口传送数据微处理器(CPU)执行部件(EU):负责指令的执行微型计算机原理习题参考答案- 2 -协调工作过程:总线接口部件和执行部件并不是同步工作的,它们按以下流水线技术原则来协调管理: 每当 8086 的指令队列中有两个空字节,或者 8088 的指令队列中有一个空字节时,总线接口部件就会自动把指令取
3、到指令队列中。 每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者输入/ 输出设备,那么,执行部件就会请求总线接口部件进入总线周期,完成访问内存或者输入/ 输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。但有时会遇到这样的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令的操作,然后再去响应执行部件发出的访问总线的请求。 当指令队列已满,而且执行部件又没有总线访问请求时,总线接口
4、部件便进入空闲状态。 在执行转移指令、调用指令和返回指令时,由于程序执行的顺序发生了改变,不再是顺序执行下面一条指令,这时,指令队列中已经按顺序装入的字节就没用了。遇到这种情况,指令队列中的原有内容将被自动消除,总线接口部件会按转移位置往指令队列装入另一个程序段中的指令。3 8086/8088 CPU 中有哪些寄存器?各有什么用途?标志寄存器 F 有哪些标志位?各在什么情况下置位?解答:寄存器 功 能AX 字乘法,字除法,字 I/OBX 查表转换CX 串操作,循环次数数 据寄存器DX 字节相乘,字节相除,间接 I/OSI 源变址寄存器,用于指令的变址寻址变 址寄存器 DI 目的变址寄存器,用于
5、指令的变址寻址SP 堆栈指针寄存器,与 SS 一起来确定堆栈在内存中的位置指 针寄存器 BP 基数指针寄存器,用于存放基地址,以使 8086/8088 寻址更加灵活IP 控制 CPU 的指令执行顺序控 制寄存器 PSW 用来存放 8086/8088CPU 在工作过程中的状态CS 控制程序区DS 控制数据区SS 控制堆栈区段寄存器ES 控制数据区标志寄存器 F 的标志位:控制标志:OF 、DF、IF 、TF ;状态标志:SF、ZF 、AF、PF、CF 。标志寄存器 F 的各标志位置位情况: CF:进位标志位。做加法时出现进位或做减法时出现借位,该标志位置 1;否则清 0。微型计算机原理习题参考答
6、案- 3 -PF:奇偶标志位。当结果的低 8 位中 l 的个数为偶数时,该标志位置 1;否则清 0。AF:半进位标志位。在加法时,当位 3 需向位 4 进位,或在减法时位 3 需向位 4 借位时,该标志位就置 1;否则清 0。该标志位通常用于对 BCD 算术运算结果的调整。ZF:零标志位。运算结果各位都为 0 时,该标志位置 1,否则清 0。SF:符号标志位。当运算结果的最高位为 1 时,该标志位置 1,否则清 0。TF:陷阱标志位(单步标志位)。当该位置 1 时,将使 8086/8088 进入单步指令工作方式。在每条指令开始执行以前,CPU 总是先测试 TF 位是否为 1,如果为 1,则在本
7、指令执行后将产生陷阱中断,从而执行陷阱中断处理程序。该程序的首地址由内存的00004H00007H 4 个单元提供。该标志通常用于程序的调试。例如,在系统调试软件DEBUG 中的 T 命令,就是利用它来进行程序的单步跟踪的。IF:中断允许标志位。如果该位置 1,则处理器可以响应可屏蔽中断,否则就不能响应可屏蔽中断。DF:方向标志位。当该位置 1 时,串操作指令为自动减量指令,即从高地址到低地址处理字符串;否则串操作指令为自动增量指令。OF:溢出标志位。在算术运算中,带符号的数的运算结果超出了 8 位或 16 位带符号数所能表达的范围时,即字节运算大于十 127 或小于128 时,字运算大于十
8、32767 或小于32768 时,该标志位置位。4 8086/8088 系统中存储器的逻辑地址和物理地址之间有什么关系?表示的范围各为多少?解答:逻辑地址:段地址:偏移地址物理地址:也称为绝对地址,由段基址和偏移量两部分构成。物理地址与系统中的存储空间是一一对应的。逻辑地址与物理地址两者之间的关系为:物理地址段地址16+偏移地址每个逻辑段的地址范围:0000:0000H FFFFH ;0001:0000HFFFFH;FFFF: 0000HFFFFH;共有 2 32 个地址,但其中有许多地址是重叠的(体现出逻辑地址的优势,可根据需要方便地写出逻辑地址,又不影响其准确的物理地址,逻辑地址与物理地址
9、的关系为多对一的关系) 。物理地址的地址范围:00000H FFFFFH 。5已知当前数据段位于存储器的 A1000H 到 B0FFFH 范围内,问 DS=?解答:A1000HA100:0000 以 A100H 为段地址的 64K 物理地址的范围是:偏移地址为0000HFFFFH,即 A100:0000HA100 :FFFFH A1000H0000HA1000H 0FFFFHA1000HB0FFFH ,DS A100H。6某程序数据段中存有两个字数据 1234H 和 5A6BH ,若已知 DS=5AA0H ,它们的偏移地址分别为 245AH 和 3245H ,试画 出它们在存储器中的存放情况解
10、答:存放情况如图所示(左右两侧的写法均 可):5AA0:0000H5AA00H34H12H6BH5AH微型计算机原理习题参考答案- 4 -5AA0:245AH5CE5AH5AA0:245BH5CE5BH5AA0: 3245H5DC45H5AA0:3246H5DC46H 7 8086/8088CPU 有哪两种工作模式,它们各有什么特点?解答:为了适应各种不同的应用场合,8086/8088CPU 芯片可工作在两种不同的工作模式下,即最小模式与最大模式。所谓最小模式,就是系统中只有一个 8086/8088 微处理器,在这种情况下,所有的总线控制信号,都是直接由这片 8086/8088CPU 产生的,
11、系统中的总线控制逻辑电路被减到最少。该模式适用于规模较小的微机应用系统。最大模式是相对于最小模式而言的,最大模式用在中、大规模的微机应用系统中。在最大模式下,系统中至少包含两个微处理器,其中一个为主处理器,即 8086/8088CPU ,其它的微处理器称之为协处理器,它们是协助主处理器工作的。8若 8086CPU 工作于最小模式,试指出当 CPU 完成将 AH 的内容送到物理地址为 91001H 的存储单元操作时,以下哪些信号应为低电平:M/ IO、RD 、WR 、BHE /S7、DT/ R。若 CPU 完成的是将物理地址 91000H 单元的内容送到 AL 中,则上述哪些信号应为低电平。若
12、CPU 为 8088 呢?解答:8086CPU存储器写(AH9100H0001H)时为低电平的信号:WR 、BHE/S 7 。存储器读(9100H0000HAL)时为低电平的信号:RD 、DT/ R 。8088CPU存储器写(AH9100H0001H) 时为低电平的信号: WR 、 SS0(BHE/S7) 、M/ IO 。存储器读(9100H0000HAL)时为低电平的信号:M/ IO、RD 、DT/ R 。9什么是指令周期?什么是总线周期?什么是时钟周期?它们之间的关系如何?解答:指令周期-CPU 执行一条指令所需要的时间称为一个指令周期(Instruction Cycle)。总线周期-每当
13、 CPU 要从存储器或 I/O 端口存取一个字节称为一次总线操作,相应于某个总线操作的时间即为一个总线周期(BUS Cycle)。时钟周期-时钟周期是 CPU 处理动作的最小时间单位,其值等于系统时钟频率的倒数,时钟周期又称为 T 状态。微型计算机原理习题参考答案- 5 -它们之间的关系:若干个总线周期构成一个指令周期,一个基本的总线周期由 4 个 T 组成,我们分别称为 T 1T 4,在每个 T 状态下,CPU 完成不同的动作。10 8086/8088 CPU 有哪些基本操作?基本的读/写总线周期各包含多少个时钟周期?什么情况下需要插入 Tw 周期?应插入多少个 Tw 取决于什么因素?解答:
14、8086/8088CPU 最小模式下的典型时序有:存储器读写;输入输出;中断响应;系统复位及总线占用操作。一个基本的 CPU 总线周期一般包含四个状态 T1、T 2、T 3、T 4 ,即四个时钟周期;在存储器和外设速度较慢时,要在 T3 之后插入 1 个或几个等待状态 Tw;应插入多少个 T w 取决于 READY 信号的状态,CPU 没有在 T 3 状态的一开始采样到READY 信号为低电平,就会在 T3 和 T4 之间插入等待状态 Tw,直到采样到 READY 信号为高电平。11试说明 8086/8088 工作在最大和最小模式下系统基本配置的差异。8086/8088 微机系统中为什么一定要
15、有地址锁存器?需要锁存哪些信息?解答:最大模式配置和最小模式配置有一个主要的差别:就是在最大模式下,需要用外加电路来对 CPU 发出的控制信号进行变换和组合,以得到对存储器和 I/O 端口的读/写信号及对锁存器(8282)和对总线收发器(8286)等等的控制信号。8288 总线控制器就是完成上面这些功能的专用芯片。为多中断源的需要,常采用中断优先权控制电路(如 Intel8259A) 。8086/8088 系统一定要有地址锁存器因为高四位地址和状态信号是从同一组引脚上分时送出的,低 16 位地址和数据是从同一组引脚上分时传输的,所以必须把地址信息锁存起来。需要锁存的信息:地址信号、BHE/S
16、7 和 IO/M(8086 为 M/IO)信号进行锁存。12试简述 8086/8088 微机系统最小模式下从存器储读数据时的时序过程。解答:正常的存储器读总线操作占用 4 个时钟周期,通常将它们称为 4 个 T 状态即 T 1T4。T1 状 态,IO/ M =0,指出要访问存储器。送地址信号 A 19-0,地址锁存信号 ALE 有效,用来控制 8282 锁存地址。DT/ R =0,控制 8286/8287 工作在接收状态(读) 。T2 状态,A 19A16 送状态 S 6 S3,AD 7 AD0 浮空,准备接收数据。同时, RD 0,表示要进行读操作,而 DEN =0 作为 8286/8287
17、 的选通信号,允许进行数据传输。T3 状态,从指定的存储单元将数据读出送 AD7 AD0。若存储器速度较慢,不能及时读出数据的话,则通过 READY 引脚通知 CPU,CPU 在 T3 的前沿采样 READY,如果 READY0,则在 T3 结束后自动插入 1 个或几个等待状态 TW, 并在每个 TW 的前沿检测 READY,等到 READY 变高后,就自动脱离 T W 进入 T 4。123微型计算机原理习题参考答案- 6 -4T4 状态,CPU 采样数据线,获得数据。RD 、DEN 等信号失效。微型计算机原理习题参考答案- 7 -CH02 80868088 指令系统习题与思考题1假定 DS=
18、2000H,ES=2100H,SS=1500H ,SI=00A0H,BX=0100H,BP=0010H ,数据变量 VAL 的偏移地址为 0050H,请指出下列指令源操作数是什么寻址方式?源操作数在哪里?如在存储器中请写出其物理地址是多少?(1)MOV AX,0ABH (2)MOV AX,100H(3)MOV AX,VAL (4)MOV BX,SI(5)MOV AL,VALBX (6)MOV CL,BXSI(7)MOV VALSI ,BX ( 8)MOV 解答:(1) MOV AX,0ABH 寻址方式:立即寻址;物理地址:无(2) MOV AX,100HBPSI,100寻址方式:直接寻址;源操
19、作数在存储器中;物理地址: DS 16+100H2000H*16+100H20100H(3) MOV AX,VAL 寻址方式:直接寻址;源操作数在存储器中;物理地址: DS 16+VAL 2000H*16+0050H20050H(4) MOV BX,SI 寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS16+SI2000H*16+00A0H200A0H(5) MOV AL,VALBX 寻址方式:变址寻址;源操作数在存储器中;物理地址:DS16+VAL+BX2000H*16+0050H+010020150H(6) MOV CL,BXSI 寻址方式:基址加变址寻址;源操作数在存储器中;
20、物理地址:DS16+BX+SI 2000H*16+0100H+00A0H201A0H(7) MOV VALSI,BX寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无(8) MOV BPSI,100寻址方式:立即寻址;物理地址:无2设有关寄存器及存储单元的内容如下:微型计算机原理习题参考答案- 8 -DS=2000H , BX=0100H , AX=1200H , SI=0002H , 20100H=12H , 20101H=34H , 20102H=56H , 20103=78H , 21200=2AH , 21201H=4CH , 21202H=0B7H , 21203H=65H。试说
21、明下列各条指令单独执行后相关寄存器或存储单元的内容。(1)MOV AX,1800H (2)MOV AX,BX(3)MOV BX,1200H (4)MOV DX,1100BX(5)MOV BXSI ,AL ( 6)MOV AX,1100BXSI 解答:题号 指 令 执 行 结 果(1) MOV AX,1800H AX1800H(2) MOV AX,BX AX0100H(3) MOV BX,1200H BX4C2AH(4) MOV DX,1100BX DX4C2AH(5) MOV BXSI,AL 20102H00H(6) MOV AX,1100BXSI AX65B7H3假定 BX=0E3H,变量
22、VALUE=79H,确定下列指令执行后的结果 (操作数均为无符号数。对 3、6,写出相应标志位的状态)。(1)ADD VALUE,BX (2)AND BX,VALUE(3)CMP BX,VALUE (4)XOR BX,0FFH(5)DEC BX (6)TEST BX,01H解答:题号 指 令 执 行 结 果(1) ADD VALUE,BX BX015CH(2) AND BX,VALUE BX0061H(3) CMP BX,VALUE BX00E3H(CF=ZF=OF=SF=0,AF=PF=1)(4) XOR BX,0FFH BX001CH(5) DEC BX BX00E2H(6) TEST B
23、X,01H BX00E3H(CF=ZF=OF=SF=AF=PF=0)4已知 SS=0FFA0H,SP=00B0H,先执行两条把 8057H 和 0F79H 分别进栈的 PUSH 指令,再执行一条 POP 指令,试画出堆栈区和 SP 内容变化的过程示意图。 (标出存储单元的地址)解答:堆栈段 SS0FFA0H 堆栈段 SS0FFA0H微型计算机原理习题参考答案- 9 -FFAABHFFAABH00ACHFFAACH 00ACHFFAACH 00ADHFFAADH00ADHFFAADH00AEHFFAAEH 00AEHFFAAEH00AFHFFAAFH 00AFHFFAAFH0FFA0: 00B0
24、HFFAB0H 0FFA0:00B0HFFAB0H初始状态;SP00B0H PUSH AX;(AX 8057H)SP00AEH堆栈段 SS0FFA0H 堆栈段 SS0FFA0HX57H80HX79H0FH57H80HX57H80HX微型计算机原理习题参考答案- 10 -FFAABHFFAABH00ACHFFAACH 00ACHFFAACH 00ADHFFAADH00ADHFFAADH00AEHFFAAEH 00AEHFFAAEH00AFHFFAAFH 00AFHFFAAFH0FFA0: 00B0HFFAB0H 0FFA0: 00B0HFFAB0H PUSH BX;(BX0F79H)SP00AC
25、H5已知程序段如下:MOV AX,1234HMOV CL,4ROL AX,CLDEC AXMOV CX,4MUL CXPOP BX;SP 00AEH试问:(1)每条指令执行后,AX 寄存器的内容是什么?( 2)每条指令执行后,CF ,SF 及ZF 的值分别是什么?(3)程序运行结束时, AX 及 DX 寄存器的值为多少?指 令 执 行 结 果AX CF SF ZFMOV AX,1234H AX1234H MOV CL,4 AX1234H ROL AX,CL AX2341H 1 0 0DEC AX AX2340H 1 0 0MOV CX,4 AX2340H 1 0 0MUL CX AX8D00H,DX=0000H 0 0 06写出实现下列计算的指令序列。 (假定 X 、Y 、Z、W、R 都为字变量)(1)Z=W+(Z+X) (2)Z=W- (X+6)-(R+9)(3)Z=(W*X)/(R+6) (4)Z=(W-X )/5*Y)*2 解答:(1)Z=W+(Z+X)题号 指 令 题号 指 令(1) Z=W+(Z+X) (2) Z=W-(X+6 )- (R+9)MOV AX,Z MOV DX,RMOV BX,X ADD DX,9MOV CX,W MOV BX,X