微机原理课后习题解答.doc

上传人:h**** 文档编号:888255 上传时间:2018-11-04 格式:DOC 页数:56 大小:624.51KB
下载 相关 举报
微机原理课后习题解答.doc_第1页
第1页 / 共56页
微机原理课后习题解答.doc_第2页
第2页 / 共56页
微机原理课后习题解答.doc_第3页
第3页 / 共56页
微机原理课后习题解答.doc_第4页
第4页 / 共56页
微机原理课后习题解答.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、微机原理习题第一章 绪论习题与答案1. 把下列二进制数转换成十进制数、十六进制数及 BCD 码形式。(1 ) 10110010B =(2 ) 01011101.101B =解:(1 ) 10110010B = 178D = B2H = (0001 0111 1000)BCD(2 ) 01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)BCD2. 把下列十进制数转换成二进制数。(1 ) 100D =(2 ) 1000D =(3 ) 67.21D =解:(1 ) 100D = 01100100B(2 ) 1000D = 111110

2、1000B(3 ) 67.21D = 1000011.0011B3. 把下列十六进制数转换成十进制数、二进制数。(1) 2B5H =(2) 4CD.A5H =解: ( 1) 2B5H = 693D = 0010 1011 0101B( 2) 4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B4. 计算下列各式。(1 ) A7H+B8H =(2 ) E4H-A6H =解:(1 ) A7H+B8H = 15FH(2 ) E4H-A6H = 3EH5. 写出下列十进制数的原码、反码和补码。(1 ) +89(2 ) -37解:(1 ) +89 原码、反码

3、和补码为: 01011001B(2 ) -37 原码 = 10100101 B -37 反码 = 11011010 B-37 补码 = 11011011 B6求下列用二进制补码表示的十进制数(1) (01001101 )补 = (2) (10110101 )补 =解:(1) (01001101 )补 = 77D(2) (10110101 )补 = -75D 7请用 8 位二进制数写出下列字符带奇校验的 ASCII 码。(1)C: 1000011 (2)O: 1001111(3)M: 1001101 (4)P: 1010000解:(1)C:0 1000011 (2)O: 0 1001111(3)

4、M:1 1001101 (4)P : 1 10100008请用 8 位二进制数写出下列字符带偶校验的 ASCII 码。(1)+:0101011 (2)=: 0111101(3)#:0100011 (4): 0111110解:(1)+:0 0101011 ( 2)=: 1 0111101(3)#:1 0100011 ( 4): 1 01111109叙述 CPU 中 PC 的作用。解:PC 是 CPU 中的程序计数器,其作用是提供要执行指令的地址。第二章 微处理器体系与结构习题与答案1. 80868088 CPU 由哪两大部分组成?请分别叙述它们的功能。解:8086/8088 CPU 均由两个独立

5、的逻辑单元组成,一个称为总线接口单元 BIU(Bus Interface Unit) ,另一个称为执行单元 EU(Execution Unit) 。总线接口单元 BIU 取指令时,从存储器指定地址取出指令送入指令队列排队;执行指令时,根据 EU 命令对指定存储器单元或 I/O 端口存取数据。执行单元 EU 任务是执行指令,进行全部算术逻辑运算、完全偏移地址的计算,向总线接口单元 BIU 提供指令执行结果的数据和偏移地址,并对通用寄存器和标志寄存器进行管理。2. 8086 8088 与传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?解:总线接口部分和执行部分是分开的,每当 E

6、U 执行一条指令时,造成指令队列空出 2个或空出一个指令字节时 ,BIU 马上从内存中取出下面一条或几条指令,以添满他的指令队列。这样,一般情况下,CPU 在执行完一条指令后,便可马上执行下一条指令,不像以往 8 位 CPU 那样,执行完一条指令后,需等待下一条指令。即 EU 从指令队列中取指令、执行指令和 BIU 补充指令队列的工作是同时进行的。这样大大提高了 CPU 利用率,降低了系统都对存储器速度的要求。 3. 状态标志和控制标志有何不同?80868088 的状态标志和控制标志分别有哪些?解:8086/8088 CPU 设立了一个两字节的标志寄存器,共九个标志。其中标志位O、S、Z、A、

7、 P、C 是反映前一次涉及 ALU 操作结果的状态标志,D、I、T 是控制 CPU 操作特征的控制标志。4. 80868088 CPU 寻址存储器时,什么是物理地址?逻辑地址?它们之间有何关系?解:8086/8088 系统中每个存储单元都有一个物理地址,物理地址就是存储单元的实际地址编码。在 CPU 与存贮器之间进行任何信息交换时,需利用物理地址来查找所需要的访问的存储单元。逻辑地址由段地址和偏移地址两部分组成。逻辑地址的表示格式为:段地址:偏移地址。知道了逻辑地址,可以求出它对应的物理地址:物理地址= 段地址10H+偏移地址。5. 段寄存器 CS1200H,指令指针寄存器 IPFF00H,此

8、时,指令的物理地址为多少?指向这一物理地址的 CS 值和 IP 值是唯一的吗?解:根据:物理地址= 段地址10H+ 偏移地址,指令的物理地址为 21F00H。指向这一物理地址的 CS 值和 IP 值不唯一。6. 8086 CPU 中 信号和 A0 信号是通过怎样的组合解决存储器和外设端口的读写的?这种组合决定了 8086 系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分?解:若存取一个字节的数据,总是用一个总线周期来完成该操作;若存取一个字,则依该字是规则字还是不规则字需用一个或两个总线周期来完成。对规则字,只用一个总线周期来完成 16 位数据的传送,而对于非规则字则用相邻两个总

9、线周期来完成该字的存储操作,先取其奇地址字节(即数据的低位字节) ,然后存取偶地址字节。在组成存储系统时,总是偶地址单元的数据通过 AD0AD7 传送,而奇地址单元的数据通过 AD8AD15 传送,即通过总线高字节传送。 信号和 A0 信号控制存储器读写见下表:操作 A0 使用的数据总线存取规则字 0 0 AD15AD0传送偶地址的一个字节1 0 AD7AD0传送奇地址的一个字节0 1 AD15AD80 1 AD15AD8(第一个总线周期)存取非规则字 1 0 AD7AD0(第二个总线周期)1 1 为非法码7什么叫总线?为什么各种微型计算机系统中普遍采用总线结构?答:总线是模块与模块之间传送信

10、息的一组公用信号线。总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。因此微型计算机系统中普遍采用总线结构。8微型计算机系统总线从功能上分为哪三类?它们各自的功能是什么?答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。9 8086/8088 CPU 分为哪两个部分?如何协调工作?答:EU 是执行部件,主要的功能是执行指令和形成有效地址。BIU 是总线接口部件,与片外存储器及 I/

11、O 接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU 经过 BIU 进行片外操作数的访问, BIU 为 EU 提供将要执行的指令。 EU 与 BIU 可分别独立工作,当 EU 不需 BIU 提供服务时,BIU 可进行填充指令队列的操作。10 8086/8088 CPU的地址总线有多少位?其寻址范围是多少?答:8086/8088 CPU的地址总线共20 位,最大可寻址1MB空间。11 8086/8088 CPU使用的存储器为什么要分段?怎么分段?答:8086/8088 为16 位CPU ,其内部的ALU、相关的地址寄存器(如SP 、IP 以及BX、 BP、SI 、DI )等都

12、是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。而实际上8086/8088有20 条地址线,它的最大寻址空间为1MB 。这就产生了一个矛盾,即如何用16 位的地址寄存器去表示一个20位的存储器物理地址?实际使用的解决办法是:将1MB大小的存储空间分为若干“ 段”,每段不超过64KB。这样,一个20位的物理地址就可以用“16位段基址:16位偏移量” 的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。12 8086/8088 CPU 中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作

13、为地址寄存器使用?答:8086/8088 CPU 中共有:8个 16位的通用寄存器AX 、BX、CX 、DX 、BP、SP 、SI、DI;2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP 、SI、DI 亦可作地址寄存器。13 Intel 8086与8088有何区别?答:8086 与8088的区别主要表现在以下几个方面:第一、8086 的指令队列可以容纳6 个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。而8088只能容纳4 个字节,且每个总线周期只能取出1个字节指令代码。第二、8086 外部数据总线宽度为16位,8088外部数据总线宽度只有 8位。注意:8086和

14、8088外部数据总线的宽度不同将导致扩展主存储器及输入 /输出接口时系统地址线和数据线连接方式的不同。第三、其他不同的引脚定义:(1)AD 15AD0,在8086 中为地址 /数据复用,而在8088中AD15AD8 改为A 15A8只作地址线用;(2 )34 、28号引脚定义不同。14 8086/8088CPU工作在最小模式时:当 CPU访问存储器时,要利用哪些信号?当CPU访问外设接口时,要利用哪些信号?答:8086/8088 CPU工作在最小模式时,若访问存储器,需用到以下信号:、ALE、 、DEN 、READY、 、 、 、AD0AD15 、A19/S6 A16/S3 。若IOM/RDT

15、/ BHEWRD访问外设,需用到以下信号:、ALE、 、DEN 、READY、 、 、AD0AD15 。/15 试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:(1 ) 1278H3469H答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1(2 ) 54E3H27A0H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=0(3 ) 3881H3597H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1(4 ) 01E3H01E3H答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1其中,进位标志CF 用于判别无符号数运算是否超出数的表示

16、范围,而溢出标志OF 用于判别带符号数运算是否超出数的表示范围。奇偶标志PF 只能判断结果低8 位中“1”的个数为奇数还是偶数。16 什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址由两个16 位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20 位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。由于8086/8088CPU 中的寄存器只有16 位长,所以程序不能直接存放 20 位的物理地址,而必须借助逻辑地址,即用两个16 位的寄存器来表示物理地址。他们之间的关系是:物理地址段基址*16偏移量;另外

17、,一个物理地址可对应多个逻辑地址。17 设现行数据段位于存储器0B0000H0BFFFFH 单元,DS 段寄存器内容为多少?答: DS 段寄存器内容为0B000H。18在 8086 中,逻辑地址、偏移地址、物理地址分别指的是什么? 答:逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是 16 位的二进制代码,如 1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值。物理地址是 8086 芯片引线送出的 20 位地址码,物理地址=段基址*16+偏移地址,用来指出一个特定的存储单元。19 给定一个存放数据的内存单元的偏移地址是 20C0H, (

18、DS)=0C0E0H,求出该内存单元的物理地址。答:物理地址:0C2EC0H。20 8086/8088 为什么采用地址/数据引线复用技术?答:考虑到芯片成本和体积,8086/8088 采用 40 条引线的封装结构。40 条引线引出8086/8088 的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。21 怎样确定 8086 的最大或最小工作模式? 答:引线 的逻辑状态决定 8086 的工作模式, 引线接高电平,8086 被MXN MXN设定为最小模式, 引线接低电平,8086 被设定为最大模式。22 8086

19、 基本总线周期是如何组成的?答:基本总线周期由 4 个时钟 (CLK)周期组成,按时间顺序定义为 T1、T2、T3、T4 。23在基于 8086 的微计算机系统中,存储器是如何组织的?存储器是如何与处理器总线连接的? 信号起什么作用?BHE答:8086 为 16 位微处理器,可访问 1M 字节的存储器空间; 1M 字节的存储器分为两个 512K 字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接 D7D0, “体选”信号接地址线 A0;奇体的数据线连接 D15D8, “体选”信号接 信号;A0 信号有效时允BHE许访问偶体中的低字节存储单元, 信号有效时允许访问奇体中的高字节存储单元

20、,实BHE现 8086 的低字节访问、高字节访问及字访问。24 有一个由 20 个字组成的数据区,其起始地址为 610AH:1CE7H。试写出该数据区首末单元的实际地址 PA。首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H27H=62DAEH25有两个 16 位的字 31DAH、5E7FH,它们在 8086 系统存储器中的地址为 00130H和 00135H,试画出它们的存储器示意图。地址 内容00130H 0DAH00131H 31H00132H00133H00134H00135H 7F00136H 5E26试说明 8086CPU 的控制引脚 ALE 的作用。答:

21、8086 的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用 ALE 信号将低位地址线通过锁存器保存,以形成系统地址总线。第三章 80x86 指令系统习题与答案1、指出下列指令中操作数的寻址方式(8086 系统) 。(1 ) MOV AX,100 (2) MOV AX,100(3 ) MOV DL,BP+SI (4 ) MOV BX,CX(5 ) MOV DX,SI (6) MOV 1234HBX,DS(7 ) MOV DI+5678H,AL (8) MOV 12BPDI,BH(9 ) POP CX ( 10)MOV AX,BX+SI+10解: 目的操作数 源操作数(1 ) MOV

22、AX,100 寄存器寻址 立即数寻址(2 ) MOV AX,100 寄存器寻址 直接寻址(3 ) MOV DL,BP+SI 寄存器寻址 基址变址寻址(4 ) MOV BX,CX 寄存器间接寻址 寄存器寻址(5 ) MOV DX,SI 寄存器寻址 寄存器间接寻址(6 ) MOV 1234HBX,DS 寄存器相对寻址 寄存器寻址(7 ) MOV DI+5678H,AL 寄存器相对寻址 寄存器寻址(8 ) MOV 12BPDI,BH 相对基址变址寻址 寄存器寻址(9 ) POP CX 隐含为堆栈 寄存器寻址(10 )MOV AX,BX+SI+10 寄存器寻址 相对基址变址寻址2、指出下列指令中操作数

23、的寻址方式(80386 系统) 。(1 ) MOV EBX+12H,AX (2) MOV EBP+EDI*2,EBX(3 ) MOV EBX*4,BX (4 ) MOV EDX,EAX+ESI*8-12H解:目的操作数 源操作数(1)寄存器相对寻址 寄存器寻址 (2 )基址比例变址寻址 寄存器寻址(3)比例变址寻址 寄存器寻址(4 )寄存器寻址 相对基址比例变址寻址3、指出以下指令中,哪些指令是非法的,并说明为什么(8086 系统) 。(1 ) PUSH 1234H (2) MOV CS,AX(3 ) IN AX, 300 (4 ) MOV AX,DX+12(5 ) MOV BX,BX (6

24、) MOV DS,1000H(7 ) XCHG AL,AL (8) MOV AL,100H(9 ) MOV DX,AL (10)LEA BL,BX+5(11 )LEA DX,BX (12)MOV 1000H,12H(13 )ADD AX,DS (14 )SUB 0100H,BYTE PTR 0001(15 )SHL BL,2 (16)SHR CL,CL(17 )MUL AL,BL (18)INT 400解:(1)非法,8086 系统不允许 PUSH 指令的操作数为立即数;(2 )非法,MOV 指令中 CS 不能作为目的操作数;(3 )非法,端口号大于 0FFH;(4 )非法,DX 不能出现在中

25、括号 内;(5 )合法;(6 )非法,不能把立即数赋给段寄存器;(7 )合法;(8 )非法,源操作数大于 0FFH,不能赋给 8 位寄存器 AL;(9 )非法,源操作数是 8 位寄存器,目的操作数却是 16 位寄存器,不匹配;(10 )非法, LEA 指令得到的是 16 位偏移量,但目的操作数是 8 位寄存器;(11 )非法, LEA 指令的源操作数只能是存储器操作数;(12 )非法,指令存在歧义,无法确定传送的是字节还是字;(13 )非法,段寄存器不能参与算术运算;(14 )非法,源和目的寄存器不能同为存储器操作数;(15 )非法,在 8086 系统中,移位次数大于 1 时需要将移位次数存放

26、到 CL 中;(16 )合法;(17 )非法,在 8086 系统中 MUL 指令没有双操作数的用法;(18 )非法,中断类型号大于 0FFH。4、指出以下指令中,哪些指令是非法的,并说明为什么(80386 系统) 。(1 ) MOV AX,12EBXSI*16 (2 ) RCR EAX,10(3 ) PUSH 5678H (4) POP 1000H(5 ) MOV EAX+EAX,EAX (6) MOV AL,ESP+ESP*2(7 ) MOV BL,AX+12 (8 ) IMUL AL,BL ,12解:(1)非法,比例因子只能是 1、2、4 、8,不能是 16;(2 )合法;(3 )合法;(

27、4 )非法,POP 指令的目的操作数不能是立即数;(5 )合法;(6 )非法,ESP 只能作为基址寄存器,不能作为变址寄存器;(7 )非法,在 386 系统中 AX 不能作为基址寄存器,也不能作为变址寄存器;(8 )合法。5、假设(AX)=1234H,(BX)=5678H,(SP)=1000H,指出执行下面的程序段后,各相关寄存器及堆栈段中的内容。PUSH AX ;(AX)=? ,(BX)=?,(SP)=?,栈顶字节SP=?, 栈顶第二字节SP+1=?PUSH BX ;(AX)=?,(BX)=?,(SP)=?,栈顶字节SP=?, 栈顶第二字节SP+1=?POP AX ;(AX)=?,(BX)=

28、?,(SP)=?,栈顶字节SP=?, 栈顶第二字节SP+1=?解:(AX)=1234H ,(BX)=5678H ,(SP)=0FFEH,栈顶字节SP=34H,栈顶第二字节SP+1=12H(AX)=1234H,(BX)=5678H,(SP)=0FFCH ,栈顶字节SP=78H,栈顶第二字节SP+1=56H(AX)=5678H,(BX)=5678H,(SP)=0FFEH,栈顶字节SP=34H,栈顶第二字节SP+1=12H6、假设 A、B 、C、D、X、Y 为字节变量,AA、BB、YY 为字变量,试利用算术运算指令编写程序段,完成以下各算术运算题。(1 )计算 YYA+B*C,其中 A、B、C 都是

29、无符号数;(2 )计算(AA+BB)/(C-D) ,商赋给 X,余数赋给 Y,其中 AA、BB 、C、D 都是带符号数;(3 )计算 YY(A-B)*C,其中 A、B 、C 都是未组合 BCD 码。解:(1 ) MOV AL,BMUL CADD AL,AADC AH,0MOV YY, AX(2 ) MOV AX,AAADD AX,BBMOV BL,CSUB BL,DIDIV BLMOV X, ALMOV Y,AH(3 ) MOV AL,ASUB AL,BAASMUL CAAMMOV YY, AX7、利用移位指令编写程序段,实现以下运算。(1 )计算 AXAX*10,其中 AX 为无符号数;(2

30、 ) 32 位带符号数存放在寄存器 DX 和 AX 中,其中 DX 存放高 16 位,AX 存放低 16 位计算(DX,AX)(DX,AX)*2。(3 ) 32 位带符号数存放在寄存器 DX 和 AX 中,其中 DX 存放高 16 位,AX 存放低 16 位计算(DX,AX)(DX,AX)/2。解:(1 ) SHL AX,1MOV BX,AXSHL AX,1SHL AX,1ADD AX,BX(2 ) SAL AX,1RCL DX,1(3 ) SAR DX,1RCR AX,1 8、指出以下指令执行后,标志寄存器 OF、SF、ZF、AF 、PF、CF 的状态。(1 ) (AL)=0FFH,(BL)=20H,执行指令:ADD AL,BL

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。