logo资料库

微型计算机原理侯晓霞课后习题答案.pdf

第1页 / 共44页
第2页 / 共44页
第3页 / 共44页
第4页 / 共44页
第5页 / 共44页
第6页 / 共44页
第7页 / 共44页
第8页 / 共44页
资料共44页,剩余部分请下载后查看
CH01微型计算机概述 习题与思考题 1.微型计算机由哪些部件组成?各部件的主要功能是什么? 解答: 算术逻辑部件 (ALU) 微处理器 ( CPU) 累加器、寄存器 控制器 微型计算机 系统总线: AB、 CB、 DB (功能:为 CPU和其他部件之间提供数据、地址     和控制信息的传输通道) 微机系统 输入 / 输出( I/O )接口:串 / 并行接口等 (功能:使外部设备和微型机相连) 存储器:只读存储器( ROM)、随机存储器( RAM) (功能:用来存储信息) 操作系统( OS) 系统软件 系统实用程序:汇编、编译、编辑、调试程序等 外围设备:打印机、键盘、 CRT、磁盘控制器等 (注: CPU的功能--①可以进行算术和逻辑运算;                     ②可保存少量数据; ③能对指令进行译码并执行规定的动作; ④能和存储器、外设交换数据; ⑤提供整修系统所需要的定时和控制; ⑥可以响应其他部件发来的中断请示。) 2.8086/8088 CPU 由哪两部分组成?它们的主要功能各是什么?是如何协调工 作的? 解答: 微处理器 ( CPU) 总线接口部件 (BIU ):负责与存储器、 I/O 端口传送数据 执行部件( EU):负责指令的执行 协调工作过程: 总线接口部件和执行部件并不是同步工作的,它们按以下流水线技术原则 来协调管理: ① 每当 8086 的指令队列中有两个空字节,或者 8088 的指令队列中有一个 空字节时,总线接口部件就会自动把指令取到指令队列中。 ② 每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前 部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中, 如果必须访问存储器或者输入 / 输出设备,那么,执行部件就会请求总线接口部 件进入总线周期,完成访问内存或者输入 / 输出端口的操作;如果此时总线接口 部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。但有时会遇
到这样的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将 某个指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令的操 作,然后再去响应执行部件发出的访问总线的请求。 ③ 当指令队列已满,而且执行部件又没有总线访问请求时,总线接口部件 便进入空闲状态。 ④ 在执行转移指令、调用指令和返回指令时,由于程序执行的顺序发生了 改变,不再是顺序执行下面一条指令,这时,指令队列中已经按顺序装入的字 节就没用了。遇到这种情况,指令队列中的原有内容将被自动消除,总线接口 部件会按转移位置往指令队列装入另一个程序段中的指令。 3.8086/8088 CPU 中有哪些寄存器?各有什么用途?标志寄存器 F 有哪些标志 位?各在什么情况下置位? 能 功 AX 字乘法,字除法,字 I/O BX 查表转换 CX 串操作,循环次数 DX 字节相乘,字节相除,间接 I/O SI DI SP 堆栈指针寄存器,与 SS一起来确定堆栈在内存中的位置 源变址寄存器,用于指令的变址寻址 目的变址寄存器,用于指令的变址寻址 8086/8088 寻址 解答: 寄存器 数 据 寄存器 变 址 寄存器 指 针 寄存器 控 制 寄存器 段寄存 器 BP 基数指针寄存器,用于存放基地址,以使 更加灵活 控制 CPU的指令执行顺序 IP PSW 用来存放 8086/8088CPU在工作过程中的状态 CS 控制程序区 DS 控制数据区 SS 控制堆栈区 ES 控制数据区 标志寄存器 F 的标志位:①控制标志: OF、DF、IF 、 TF;②状态标志: SF、ZF、AF、PF、CF。 标志寄存器 F的各标志位置位情况: · CF:进位标志位。做加法时出现进位或做减法时出现借位,该标志位置 1;否则清 0。 ·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,则在本指令执行后将产生陷阱中断,从而执行陷阱中断处理 程序。该程序的首地址由内存的 00004H~00007H 4 个单元提供。该标志通 常用于程序的调试。例如,在系统调试软件 DEBUG中的 T 命令,就是利用 它来进行程序的单步跟踪的。 ·IF :中断允许标志位。如果该位置 1,则处理器可以响应可屏蔽中断,否 则就不能响应可屏蔽中断。 ·DF:方向标志位。当该位置 1 时,串操作指令为自动减量指令,即从高地 址到低地址处理字符串;否则串操作指令为自动增量指令。 ·OF:溢出标志位。在算术运算中,带符号的数的运算结果超出了 位带符号数所能表达的范围时,即字节运算大于十 时,字运算大于十 32767 或小于- 32768 时,该标志位置位。 8 位或 16 127 或小于- 128 4.8086/8088 系统中存储器的逻辑地址和物理地址之间有什么关系?表示的范 围各为多少? 解答: 逻辑地址:段地址:偏移地址 物理地址:也称为绝对地址,由段基址和偏移量两部分构成。物理地址与 系统中的存储空间是一一对应的。 逻辑地址与物理地址两者之间的关系为:物理地址=段地址× 16+偏移地址 每 个 逻 辑 段 的 地 址 范 围 : 0000 : 0000H~ FFFFH; 0001 : 0000H~ FFFFH;, ; FFFF:0000H~FFFFH;共有 232 个地址,但其中有许多地址是重叠 的(体现出逻辑地址的优势,可根据需要方便地写出逻辑地址,又不影响其准 确的物理地址,逻辑地址与物理地址的关系为多对一的关系) 。 物理地址的地址范围: 00000H~FFFFFH。 5.已知当前数据段位于存储器的 A1000H到 B0FFFH范围内,问 DS=? 解答: A1000H→A100:0000 移地址为 0000H~FFFFH,即 A100:0000H~ A100:FFFFH→ A1000H+0000H~ A1000H+0FFFFH=A1000H~B0FFFH,∴ DS=A100H。 以 A100H为段地址的 64K 物理地址的范围是:偏 6.某程序数据段中存有两个字数据 1234H和 5A6BH,若已知 DS=5AA0H,它们的 偏移地址分别为 245AH和 3245H,试画出它们在存储器中的存放情况 解答: 存放情况如图所示 ( 左右两侧的写法均可 ) :
5AA0 : 0000H 5AA00H · · · 5AA0 : 245AH 5AA0 : 245BH · · · 5AA0 : 3245H 5AA0 : 3246H · · · · · · 34H 12H · · · 6BH 5AH · · · 5CE5AH 5CE5BH 5DC45H 5DC46H 7.8086/8088CPU有哪两种工作模式,它们各有什么特点? 解答:为了适应各种不同的应用场合, 8086/8088CPU芯片可工作在两种不同的 工作模式下,即最小模式与最大模式。 所谓最小模式,就是系统中只有一个 8086/8088 微处理器,在这种情况 下,所有的总线控制信号,都是直接由这片 8086/8088CPU产生的,系统中的总 线控制逻辑电路被减到最少。该模式适用于规模较小的微机应用系统。 最大模式是相对于最小模式而言的,最大模式用在中、大规模的微机应用 系统中。在最大模式下,系统中至少包含两个微处理器,其中一个为主处理 器,即 8086/8088CPU,其它的微处理器称之为协处理器,它们是协助主处理器 工作的。 8.若 8086CPU工作于最小模式,试指出当 CPU完成将 AH的内容送到物理地址 M/ IO 、 RD 、 为 91001H 的存储单元操作时,以下哪些信号应为低电平: WR 、 BHE /S7、DT/ R 。若 CPU完成的是将物理地址 91000H单元的内容送到 AL中,则上述哪些信号应为低电平。若 CPU为 8088 呢?(略) 9.什么是指令周期?什么是总线周期?什么是时钟周期?它们之间的关系如 何? 解 答 : 指 令 周 期 ----CPU 执 行 一 条 指 令 所 需 要 的 时 间 称 为 一 个 指 令 周 期 (Instruction Cycle) 。 总线周期 ---- 每当 CPU要从存储器或 I/O 端口存取一个字节称为一次总 线操作,相应于某个总线操作的时间即为一个总线周期 (BUS Cycle) 。 时钟周期 ---- 时钟周期是 CPU处理动作的最小时间单位,其值等于系统 时钟频率的倒数,时钟周期又称为 T 状态。 它们之间的关系:若干个总线周期构成一个指令周期,一个基本的总线周 期由 4 个 T 组成,我们分别称为 T1~T4,在每个 T 状态下, CPU完成不同的动
作。 10. 8086/8088 CPU 有哪些基本操作?基本的读 / 写总线周期各包含多少个时 钟周期?什么情况下需要插入 Tw周期?应插入多少个 Tw取决于什么因素? 解答:① 8086/8088CPU最小模式下的典型时序有:存储器读写;输入输出;中 断响应;系统复位及总线占用操作。 ②一个基本的 CPU总线周期一般包含四个状态 周期; T 、、、 1 T T 3 2 T 4 ,即四个时钟 ③在存储器和外设速度较慢时,要在 3T 之后插入 1 个或几个等待状态 wT ; ④应插入多少个 wT 取决于 READY信号的状态, CPU没有在 3T 状态的一开始采 样到 READY信号为低电平,就会在 3T 和 4T 之间插入等待状态 wT ,直到采样到 READY信号为高电平。 11. 试说明 8086/8088 工作在最大和最小模式下系统基本配置的差异。 8086/8088 微机系统中为什么一定要有地址锁存器?需要锁存哪些信息? (略,见书) 12.试简述 8086/8088 微机系统最小模式下从存器储读数据时的时序过程。 (略,见书) CH02 8086/8088 指令系统 习题与思考题 1.假定 DS=2000H,ES=2100H,SS=1500H, SI=00A0H,BX=0100H,BP=0010H, 数据变量 VAL 的偏移地址为 0050H,请指出下列指令源操作数是什么寻址方 式?源操作数在哪里?如在存储器中请写出其物理地址是多少? (1)MOV AX,0ABH (3)MOV AX,VAL (5)MOV AL,VAL[BX] (7)MOV VAL[SI],BX (2)MOV AX,[100H] (4)MOV BX,[SI] (6)MOV CL,[BX][SI] [BP][SI] ,100 (8)MOV 解答: (1)MOV AX,0ABH 寻址方式:立即寻址;物理地址:无
(2)MOV AX,[100H] 寻址方式:直接寻址;源操作数在存储器中;物理地址: DS*16+100H =2000H*16+100H=20100H (3)MOV AX,VAL 寻址方式:直接寻址;源操作数在存储器中;物理地址: DS* 16+VAL =2000H*16+0050H=20050H (4)MOV BX,[SI] 寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址: DS* 16+SI=2000H*16+00A0H=200A0H (5)MOV AL,VAL[BX] 寻 址 方 式 : 变 址 寻 址 ; 源 操 作 数 在 存 储 器 中 ; 物 理 地 址 : DS* 16+VAL+BX=2000H*16+0050H+0100 =20150H (6)MOV CL,[BX][SI] 寻址方式:基址加变址寻址;源操作数在存储器中;物理地址: DS* 16+BX+SI=2000H*16+0100H+00A0H =201A0H (7)MOV VAL[SI],BX 寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无 (8)MOV [BP][SI] ,100 寻址方式:立即寻址;物理地址:无 2.设有关寄存器及存储单元的内容如下: DS=2000H , BX=0100H , AX=1200H , SI=0002H , [20100H]=12H , [20101H]=34H , [20102H]=56H , [20103]=78H , [21200]=2AH , [21201H]=4CH,[21202H]=0B7H,[21203H]=65H。 试说明下列各条指令单独执行后相关寄存器或存储单元的内容。 (1)MOV AX,1800H (3)MOV BX,[1200H] (2)MOV (4)MOV AX,BX DX , 1100[BX] (5)MOV [BX][SI] ,AL (6)MOV
AX,1100[BX][SI] 解答: 令 指 题号 (1) MOV AX,1800H (2) MOV AX,BX (3) MOV BX,[1200H] (4) MOV DX,1100[BX] (5) MOV [BX][SI] ,AL AX 1100[BX][SI] (6) MOV 执 行 结 果 AX=1800H AX=0100H BX=4C2AH DX=4C2AH [20102H] =00H , AX=65B7H 3.假定 BX=0E3H,变量 VALUE=79H,确定下列指令执行后的结果 ( 操作数均为无 符号数。对 3、6,写出相应标志位的状态 ) 。 (1)ADD VALUE,BX (2)AND (3)CMP BX,VALUE (5)DEC BX (6)TEST BX,01H BX,VALUE (4)XOR BX,0FFH 解答: 令 指 题号 (1) ADD VALUE,BX (2) AND BX,VALUE (3) CMP BX,VALUE (4) XOR BX,0FFH (5) DEC BX (6) TEST BX,01H 执 行 结 果 BX=015CH BX=0061H BX=00E3H(CF=ZF=OF=SF=0,AF=PF=1) BX=001CH BX=00E2H BX=00E3H(CF=ZF=OF=SF=AF=PF=0) 4.已知 SS=0FFA0H,SP=00B0H,先执行两条把 8057H和 0F79H分别进栈的 PUSH 指令,再执行一条 POP指令,试画出堆栈区和 SP 内容变化的过程示意图。 (标出存储单元的地址) 解答:
堆栈段 SS= 0FFA0H 堆栈段 SS= 0FFA0H 00ACH 00ADH 00AEH 00AFH 0FFA0 : 00B0H · · · X · · · FFAABH FFAACH FFAADH FFAAEH FFAAFH FFAB0H 00ACH 00ADH 00AEH 00AFH 0FFA0 : 00B0H · · · 57H 80H X · · · FFAABH FFAACH FFAADH FFAAEH FFAAFH FFAB0H ①初始状态; SP= 00B0H ② PUSH AX ; ( AX =8057H) SP= 00AEH 堆栈段 SS= 0FFA0H 堆栈段 SS= 0FFA0H 00ACH 00ADH 00AEH 00AFH 0FFA0 : 00B0H · · · 79H 0FH 57H 80H X · · · FFAABH FFAACH FFAADH FFAAEH FFAAFH FFAB0H 00ACH 00ADH 00AEH 00AFH 0FFA0 : 00B0H · · · 57H 80H X · · · FFAABH FFAACH FFAADH FFAAEH FFAAFH FFAB0H ③ PUSH  BX; ( BX= 0F79H) SP= 00ACH ④ POP  BX;SP= 00AEH 5.已知程序段如下: MOV AX,1234H MOV CL,4 ROL AX,CL DEC AX MOV CX,4 MUL CX 试问:(1)每条指令执行后, AX 寄存器的内容是什么?( 2)每条指令执行 后, CF,SF及 ZF 的值分别是什么?( 3)程序运行结束时, AX及 DX寄存器的 值为多少?
分享到:
收藏