第二章 8086 体系结构与 80x86CPU 1.8086CPU 由哪两部分构成? 它们的主要功能是什么? 答 :8086CPU 由两部分组成 : 指令执行部件 (EU,Execution Unit) 和总线 接口部件 (BIU,Bus Interface Unit) 指令执行部件 (EU) 主要由算术逻辑运 算单元 (ALU) 标志寄存器 FR 通用寄存器组和 EU 控制器等 4 个部件组成, 其 主要功能是执行指令 总线接口部件 (BIU) 主要由地址加法器 专用寄存器组 指 令队列和总线控制电路等 4 个部件组成, 其主要功能是形成访问存储器的物理 地址 访问存储器并取指令暂存到指令队列中等待执行, 访问存储器或 I/O 端 口读取操作数参加 EU 运算或存放运算结果等 2.8086CPU 预取指令队列有什么好处?8086CPU 内部的并行操作体现 在哪里? 答 :8086CPU 的预取指令队列由 6 个字节组成, 按照 8086CPU 的设 计要求, 指令执行部件 (EU) 在执行指令时, 不是直接通过访问存储器取指令, 而是从指令队列中取得指令代码, 并分析执行它 从速度上看, 该指令队列是在 CPU 内部,EU 从指令队列中获得指令的速度会远远超过直接从内存中读取指
令 8086CPU 内部的并行操作体现在指令执行的同时, 待执行的指令也同时从 内存中读取, 并送到指令队列 5. 简述 8086 系统中物理地址的形成过程 8086 系统中的物理地址最多有 多少个? 逻辑地址呢? 答 :8086 系统中的物理地址是由 20 根地址总线形成的 8086 系统采用分段并附以地址偏移量办法形成 20 位的物理地址 采用分段结 构的存储器中, 任何一个逻辑地址都由段基址和偏移地址两部分构成, 都是 16 位二进制数 通过一个 20 位的地址加法器将这两个地址相加形成物理地址 具 体做法是 16 位的段基址左移 4 位 ( 相当于在段基址最低位后添 4 个 0 ), 然 后与偏移地址相加获得物理地址 由于 8086CPU 的地址线是 20 根, 所以可寻 址的存储空间为 1M 字节, 即 8086 系统的物理地址空间是 1MB 逻辑地址由 段基址和偏移地址两部分构成, 都是无符号的 16 位二进制数, 程序设计时采用 逻辑地址, 也是 1MB 6.8086 系统中的存储器为什么要采用分段结构? 有什么好处?
答 :8086CPU 中的寄存器都是 16 位的,16 位的地址只能访问 64KB 的内 存 086 系统中的物理地址是由 20 根地址总线形成的, 要做到对 20 位地址空 间进行访问, 就需要两部分地址 采用段基址和偏移地址方式组成物理地址的优点是 : 满足对 8086 系统的 1MB 存储空间的访问, 同时在大部分指令中只要提供 16 位的偏移地址即可 9. 在某系统中, 已知当前 (SS)=2360H,(SP)=0800H, 那么该堆 栈段在存储器中的物理地址范围是什么? 若往堆栈中存入 20 个字节数据, 那么 SP 的内容为什么值? 答 :(SS) 10H+(SP)=23600H+0800H= 23E00H, 堆栈段在存储器中的物理地址范围是 23600H~23E00H 若往堆栈 中存入 20 个字节数据, 那么 SP 的内容为 0800H-14H=07ECH (20 的十六 进制为 14H) 10. 已知当前数据段位于存储器的 B4000H 到 C3FFFH 范围内, 则段寄存 器 DS 的内容为多少? 答 : 段寄存器 DS 的内容为 B4000H 11.8086 系统中为什么一定要有地址锁存器? 需要锁存哪些信息?
答 : 由于 8086CPU 受芯片封装的限制, 只有 40 个管脚, 所以地址线和数 据线只能采用复用的方式共同使用某些管脚 对存储器进行访问时, 在读取数据 或写入数据时, 存储器芯片要求在这个过程中地址信息必须稳定提供给存储器, 而由于 8086CPU 地址线和数据线是复用的, 就不可能在同一时刻具有地址和 数据的两种功能 这就需要在 CPU 提供地址信息时, 将地址锁存起来, 以保证 下一个时刻当这些复用的管脚起着数据线的功能时, 存储器有正确的地址信息 要锁存的信息包括这些复用管脚的地址和 BHE 等信号 12.8086 读 / 写总线周期各包括最少几个时钟周期? 什么情况下需要插入 等待周期 T W? 插入多少个 T W 取决于什么因素? 答 :8086 读 / 写总线周期各包 括最少四个时钟周期 在系统中增加等待周期 T W 的一般情况是 : 当 CPU 提供了 地址后, 由于外设或存储器的读出或写入时间较慢, 不能与 CPU 的速度匹配, 就需要插入等待周期 T W, 等待 CPU 能从外设或存储器将数据正确地读出或写 入为止 显然, 插入的等待周期 T W 的个数取决于外设或存储器的取出或写入时 间 13. 若已知当前 (DS)=7F06H, 在偏移地址为 0075H 开始的存储器中
连续存放 6 个字节的数据, 分别为 11H,22H,33H,44H,55H 和 66H, 请指出这些数据在存储器中的物理地址, 如果要从存储器中读出这些数据, 需要设备部几次存储器? 各读出哪些数据? 答 : 物理地址 : 7 F 0 6 H 1 0 H + 0 0 7 5 H = 7 F 0 DSH, 故从 7F0DSH 起 6 个地址数据在存储器中的地址 最少要访问四次 : 第一次 :11 第二次 :33,22 第三次:55,44 第四次:66 14: 某程序在当前数据段中存有两个数据字 0 ABCDH 和 1234H, 它们对应的物理地址分别为 3FF85H 和 40AFEH, 若已知当前 (DS)=3FB0H, 请说明这两个数据的偏移地址, 并用图说明它们在存储器中的存放格式 答 : 偏移地址为 :0485H 和 0FFEH 第三章 8086 的指令系统 1:MOV AX,[SI] 寄存器寻址寄存器间接寻址 2:MOV DI,100 寄存器寻址立即寻址 3:MOV [BX],AL 寄存器间接寄存器 4:MOV [BX][SI],CX 基址 + 变址寄存器 5:ADD DX,106H[SI] 变址寄存器 6:PUSH AX 寄存器 7:ADD DS:[BP],AX 8:OR AX,DX 寄存器 2: 设寄存器 DS=2000H,SS=1500H,ES=3200H,SI=0 A 0 H,BX =100 H,BP=10 H, 数据段中变量 VAL 的偏移地址为 50H, 试指出下
列各条指令中源操作数的寻址方式是什么? 对于存储器操作数, 其物理地址是 多少? (1) MOV AX,[100H] 直接寻址 :20100H (2) MOV CX,ES:[BX] 寄存器寻址 (3) MOV DX,[BX][SI] 基址 + 变址 :200F0h (4) MOV AX,VAL[SI] 变址寻址 :200F0h (5) MOV BX,1234[BX] 基址寻址 :205D2H (6) MOV AX,[BP] 寄存器寻址 :15010H 3. 答案 (3)OUT 3EBH,AX 改 (4)MUL AL,CL 改 MUL CL MOV DX,3EBH 6)ROL DX,5 改 MOV CL,5 OUT DX,AX ROL DX,CL (5)MUL AX,25 改 (8)POP FR 改 POPF MOV BX,25 (9)MOV 234H,BX 改 MOV BX,234H (10)INC [SI] 改 INC BYTE PTR [SI] (11)ADD [BX],456H 改 ADD WORD PTR [BX],456H (12)INT O 错 (13)DIV AX,BX 改 DIV BX
(14)DEC [BP] 改 DEC WORD PTR [BP] (15)XLAT BX 错 (16)ADD CX+1 改 ADD CX,1 或 INC CX (17)DAA AX 改 DAA 4: 带符号数 -86 所表示的二进制 :10101010B 执行 MOV DL,2AH 和 SHR DL,1 两条指令后 :DL=00010101 CF=0 可将 AX 寄存器中 D0,D5,D8 和 D11 位求反, 其余位不变的指令 :XOR AX,0921H 某存储单元物理地址为 3B4FH, 其段地址和偏移地址可选 :3B40H 和 00FEH 两个 8 位二进制数 00110101 及 10110110 做 异或 操作后, 寄存器 FR 的下面 3 个状态标志分别是 :PF=0 SF=1 ZF=0 寄存器写指令时, 如 MOV [SI],AX, 则 CPU 的外部管脚状态 :WR=0 RD=1 M\IO=1 5: 已知,DS=2000H BX=100H SI=02H 从物理地址 20100H 单元开始, 依次存放数据 12H 34H 56H 78H, 而从物理地址 21200h 单元开始, 依次存放 数据 2AH,4CH.8BH,98H. 试说明下列各条指令单独执行后 AX 寄存器的内容 (1)MOV AX,3600H 3600H
(2)MOV AX,[1200H] 4C2AH (3)MOV AX,BX 0100H (4)MOV AX,[BX] 3412H (5)MOV AX,1100H[BX] 4C2AH (6)MOV AX,[BX][SI] 7856H 6. 设堆栈指针 SP 的初值为 2400H,(AX)=4000H,(BX)=3600H. 问 : (1) 执行指令 PUSH AX 后,SP=? 23FEH (2) 再执行 PUSH AX 和 POP AX 后,(SP)=?(AX)=?(BX)=? SP=23FEH AX=3600H BX=3600H 7. (1)MOV DX,2000H MOV BX,1000H XHGH BX,DX BX=2000H,DX=1000H (2)MOV AX,1234H PUSH AX POP BX
AX=1234H,BX=1234H (3)LEA DX,[2000H] MOV BX,DX BX=2000H (4)MOV AL,08 ADD AL,08 AAA AX=0106 (5)MOV AL,48H ADD AL,39H DAA (AL)=87H (6)AND AL,AL MOV AL,80 ADC AL,AL (AL)=0A0H (7)MOV DX,OFFFH
NEG DX (DX)=0001H (8)MOV BL,OB8H ROR BL,1 BL=5CH,CF=0 (9)SUB AX,AX AND DX,DX DX=0 (10)MOV CL,3 MOV AH,42H SHR AH,XL AH=08H,CF0 (11)MOV AX,34EBH MOV CL,5FH DIV CL CF=8FH (12)MOV AL,08H
MOV BL,09 MUL BL AAM AX=0702H (13)MOV BL,9 MOV AX,0702H ADD DIV BL, AX=0008H (14)MOV AL98H CBW BX=0FF98H (15)MOV AH,2 MOV DL,`W` INT 21H 结果 = 执行 DOS 的 2 号功能调用, 在屏幕上显示字母 W 第五章存储器原理与接口
1. 按存储器在计算机中的作用, 存储器可分为哪向类? 简述其特点 答 : 存储器分 : 主存储器 ( 内存 ), 辅助存储器 ( 外存 ), 高压缓冲存储 器 主存储器用来存放活动的程序和数据, 其速度高, 容量较少 每位价格高 辅助存储器用于存放当前不活跃的程序和数据, 其速度慢 容量大 每位价 格低 缓冲存储器在两个不同工作速度的部件之间起缓冲作用 2. 什么是 RAM 和 ROM? RAM 和 ROM 各有什么特点? 答 :RAM 是随机存储器, 指计算机可以随机地 个别地对各个存储单元进 行访问, 访问所需时间基本固定, 与存储单元的地址无关 ROM 是只读存储器 对其内容只能读, 不能写入 与 RAM 相比, 其信息具有非易失性, 即掉电后, ROM 中的信息仍会保留 3. 什么是多层次存储结构? 它有什么作用? 答 : 存储器的性能是计算机性能的最主要指标之一, 其目标是大容量 高速 度和低成本, 因此应该在系统结构的设计上扬长避短, 采用多层存储结构构成 一个较为合理的存储系统 多层存储结构是一个金字塔的结构, 距塔尖 ( 即
CPU) 越近速度越快, 容量越小, 单位价格也较贵 ; 反之速度较慢, 容量较大, 单位价格也较便宜 其作用是获得最佳性价比 5. 主存储器的主要技术指标有哪些? 答 : 主存储器的主要技术指标有主存 容量 存储器存取时间 存储周期和可靠性 7. 若用 1K 1 位的 RAM 芯片组成 16K 8 位的存储器, 需要多少片芯片? 在 CPU 的地址线中有多少位参与片内寻址? 多少位用做芯片组选择信号? 答 : 要 128 片 A1~A9 共 10 位参与片内寻址, 其余可用于片选信号 8. 在 8086 系统中, 若要从存储器奇地址体中读 1 个字节数据, 列出存储 器有关的控制信号和它们的有效逻辑电平信号 答 :RD=0 WD=1 CS=0 MIO=1 BHE=0 第六章微型计算机的输入输出 1.CPU 与外部设备通信为什么使用接口? 答 : 存储器与 CPU 交换信息时, 它们在数据格式 存取速度等方面基本上是匹配的,, 也就是说,CPU 要从存储器读入指令 数据或向存储器写入新的结果和数据, 只要一条存储器访问就可以完成 ; 在硬件连接方面, 只需芯片与芯片之间的管脚直接连接 但 CPU 要与外部设备通信至少有两方面的困难 : 第一, CPU 的运行速度要比外设的处理速度高得多, 通常简单地用一条输入输出的指令是无法完成 CPU 与外设之间的信息交换的 ; 第二, 外设的数据线和控制线也
不可能与 CPU 直接连接 CPU 与外设通信具有如下特点 : 需要接口作为 CPU 与外设通信的桥梁 需要有数据传送之前的 联络 要传递的信息有三方面内容: 状态 数据和控制信息 CPU 与外设通信必须借助于必要的电路来实现, 这样的电路称为接口或 I/O 接口 1. 什么是接口? 为什么需要接口? 接口有哪些作用? 答 : 而介于主机和外设之间用于完成某些控制功能 速度匹配 信号转换的 一种缓冲电路称为 I/O 接口电路, 简称 I/O 接口 (Interface) I/O 接口在 CPU 与外设之间建立一个缓冲区, 解决 CPU 与外设之间在数据 形式 数据的传递方式以及传递速率上存在很大差异的矛盾 接口作用主要包括信号暂存 数据格式转换 传送路径的切换控制和状态信 号的交换 通讯控制 设备动作 定时控制 中断管理及错误检测等功能. 答 :CPU 和外设之间的信息交换存在以下一些问题 : 速度不匹配 ; 信号电平不匹配 ; 信号格式不匹配 ; 时序不匹配 I/O 接口电路是专门为解决 CPU 与外设之间的不匹配 不能协调工作而设置的, 处于总线和外设之间, 一般应具有以下基本功能 :⑴ 设置数据缓冲以解决两者速度差异所带来的不协调问题 ;⑵ 设置信号电平转换电路, 如可采用 MC1488 MC1489 MAX232 MZX233 芯片来实现电平转换 ⑶ 设置信息转换逻辑, 如模拟量必须经 A/D 变换成数字量后, 才能送到计算机去处理, 而计算机送出的数字信号也必须经 D/A 变成模拟信号后, 才能驱动某些外设工作 ⑷ 设置时序控制电路 ;⑸ 提供地址译码电路
2.I/O 接口有什么用途? 1) 进行地址译码或设备选择, 以便使 CPU 能与某一指令的外部设备通信 2) 状态信息的应答, 以协调数据传送之前的准备工作 3) 进行中断管理, 提供中断信号 4) 进行数据格式转换, 如正负逻辑的转换 串行与并行数据转换等 5) 进行电平转换, 如 TTL 电平与 MOS 电平间的转换 6) 协调速度, 如采用锁存 缓冲 驱动等 7) 时序控制, 提供实时时钟信号 3.I/O 端口有哪两种寻址方式? 各有何优缼点? 答 : 存储器的映像 I/O 寻址和 I/O 映像的 I/O 寻址存储器映射的 I/O 寻址方式优缺点 优点 : 由于 I/O 和存储器在地址上没有区别, 在程序设计时可以使用丰 富的指令对端口进行操作, 甚至包括对端口数据的运算 缺点 : I/O 端口需要占用部分处理器的地址空间 由于存储器和 I/O 端口地址在形式上没有区别, 相对增加了程序设计和阅读的难度 I/O 映射的 I/O 寻址方式优缺点优点 : 程序阅读方便, 使用 IN 或 OUT 指令就一定是对外设的通信 ; 由于 I/O 端口有自己的地址, 使系统存储器地址范围扩大, 适合大系统使用 缺点 : 指令少, 编程相对灵活性减少 ; 硬件上需要 I/O 端口的译码芯片, 增加了硬件开支 5. 微机系统的输入输出指什么? 输入输出有什么不同?
常用的打印机有 : 击打式 喷墨式和激光打印机 输入与输出的不同输入是指从被控设备到计算机的物理信号的传输和变换通道, 其主要实现被控设备和计算机之间原始参数和信号的变换 输出是指从计算机到被控设备的控制信号和参数的传输通道, 其与输入一样都有模拟与数字之分, 都是用以实现数据采集现场与计算机的连接 6. 输入输出有哪几种方式? 各有何优缼点? 答 : 两种方式 : 程序控制方式和直接存储器存取方式 (DMA 方式 ) 优缼点 : 程序控制方式 : 速度慢, 但程序简单 DMA: 速度快, 但程序复杂 7. 在输入输出的电路中, 为什么常常要用锁存器和缓冲器? 因为 I/O 速度非常快, 利用锁存器和缓存器解决同步问题 9.8086CPU 在执行输入输出指令时,CPU 有哪些控制管脚的作用, 什么样的电平有效? 答 :RD WD CS MI0 BHE 除了 BHE 高电平有效, 其它均低电平有效 10.8086CPU 分配的端口地址有何限制? 为什么? 8086CPU 与外设交换数据可按字节进行 当按字节进行时, 偶地址端品的字节数据由低 8 位数据线 D7~D0 位传输, 奇地址端口的字节数据由高 8 位数据线 D15~D8 传输 当用户在安排外设的端口地址时, 如果外设是以 8 位方式与 CPU 连接, 就只能将其数据线与 CPU 的低 8 位连接, 或者只能与 CPU 的高 8
位方式连接 这样, 同一台外设的所有寄存器端口地址都只能是偶地址或者奇地 址, 所以设备的端口地址往往是不连续的 例 : 设计一 ROM 扩展电路, 容量为 32K 字, 地址从 00000H 开始 EPROM 芯 片取 27256 解 : a 确定芯片个数 32K 16=64K 8 64 K 8/(32 K 8)=2( 片 ) A15 A1 D15 D8 D7 D0 RD M/IO A19 A18 A17 A16 + A14 A0 D7 D0 27256EPROM CS OE A14 A0 D7 D0 27256EPROM CS OE
例 : 设计一 RAM 扩展电路, 容量为 32K 字, 地址从 10000H 开始 芯片采用 62256 解 : a 计算所需要的芯片个数 32K 16=64K 8 64 K 8/(32 K 8)=2( 片 ) A15 A1 D15 D8 D7 D0 RD WR M/IO A19 A18 A17 A16 + A14 A0 D7 D0 62256RAM CS OE WR + + BHE A14 A0 D7 D0 62256RAM CS OE WR A0