1、微机原理与接口技术顾晖习题参考答案微机原理与接口技术-顾晖-习题参考答案微机原理与接口技术 答案第1章 习题答案1.计算机硬件的基本组成部分有哪些?简述各部分的功能答:计算机硬件的基本组成部分有:运算器、控制器、存储器、输入设备和输出设备五大组成部分;运算器功能:完成各种算术运算或逻辑运算;控制器功能:发出各种控制信息,使计算机各部件协调工作;存储器功能:存储程序和数据;输入设备:将程序和数据输入的部件;输出设备:将结果数据输出的部件。2.简述微型计算机系统的组成。4分答:以微型计算机为核心,配以鼠标、键盘等外围设备、电源、接口电路,以及控制计算机工作的软件构成微型计算机系统。3.简述总线控制
2、逻辑的任务。答:123D采用十进制,0AFH采用十六进制,77Q采用八进制,1001110B采用二进制。3.答:字长为8位的二进制数原码表示的最大值:127,最小值:-127;补码表示的最大值:127,最小值:-128。字长为16位的二进制数原码表示的最大值:32767,最小值:-32767;补码表示的最大值:32767,最小值:-32768。4.把下列十进制数分别转换为二进制数和十六进制数。2分1)125 2)255 3)72 4)5090答:(1)125D=0111 1101B=7DH(2) 255D=1111 1111B=FFH(3)72D=0100 1000B=48H(4)5090D=
3、0001 0011 1110 0010B=13E2H5.答:(1)1111 0000B=240D=F0H(2) 1000 0000 B =128D =80H(3)1111 1111 B =255 D =FFH(4)0101 0101B=85D=55H6.答:(1)FFH=255D=1111 1111B(2) ABCDH=43981D=1010 1011 1100 1101B(3) 123H=291D=0000 0001 0010 0011B(4) FFFFH=65535D=1111 1111 1111 1111B7.答:(1)8位时(16)原=0001 0000 ; (16)补=0001 00
4、00;16位时(16)原=0000 0000 0001 0000 ; (16)补=0000 0000 0001 0000;(2) 8位时(-16)原=1001 0000 ; (-16)补=1111 0000;16位时(-16)原=1000 0000 0001 0000 ; (-16)补=1111 1111 1111 0000;(3) 8位时(+0)原=0000 0000; (+0)补=0000 0000;16位时(+0)原=0000 0000 0000 0000; (+0)补=0000 0000 0000 0000;3(4) 8位时(-0)原=1000 0000 ; (-0)补=0000 00
5、00;16位时(-0)原=1000 0000 0000 0000; (-0)补=0000 0000 0000 0000;(5) 8位时(127)原=0111 1111; (127)补=0111 1111;16位时(127)原=0000 0000 0111 1111; (127)补=0000 0000 0111 1111;(6) 8位时-128超过原码表示的范围; (-128)补=1000 0000;16位时(-128)原=1000 0000 1000 0000; (-128)补=1111 1111 1000 0000;(7) 8位时(121)原=0111 1001 ; (121)补=0111
6、1001;16位时(121)原=0000 0000 0111 1001; (121)补=0000 0000 0111 1001;(8) 8位时(-9)原=1000 1001 ; (-9)补=1111 0111;16位时(-9)原=1000 0000 0000 1001; (-9)补=1111 1111 1111 0111;8.实现下列转换 2分1)X原=10111110,求X补 2)X补=11110011,求-X补3)X补=10111110,求X原 4)X补=10111110,求X反答:(1) x补=1100 0010;(2)-x补=0000 1101;(3)x原=1100 0010;(4)x
7、反=1011 1101。9.答:(1)AB;(2)AB10.答:(1)溢出;(2)13H;(3)溢出;(4)EDH;(5)EDH。11.完成下列8位二进制数的逻辑运算 1分1)1100110010101010 2)11001100101010103)1100110010101010 4)10101100101011005)10101100 10101100 6)10101100101011007)10101100答:(1)1000 1000;(2)1110 1110;(3)0110 0110;(4)1010 1100;(5)0000 0000;(6)1010 1100;(7)=0101 001
8、1。12.答:(1)30H=48,字符为0;(2)39H=57,字符为9;(3)42H=66,字符为B;(4)62H=98,字符为b;(5)20H=32,字符为空格;(6)7H=7,字符为报警符;13、答:十进制49123762压缩BCD码0100 1001B0001 0010 0011B0000 0111B0110 0010B非压缩BCD码0000 0100 0000 1001B0000 0001 0000 0010 0000 0011B0000 0111B0000 0110 0000 0010BASCII码3439H313233H37H3632H4第3章 习题答案1.(1)答:物理地址:物
9、理地址(PA)是20位无符号二进制数,是CPU访问存储器的实际地址。每个存储单元对应一个物理地址。8086存储空间的物理地址范围是:00000HFFFFFH。逻辑地址:采用分段结构的存储器中,把通过段地址和偏移地址来表示的存储单元的地址称为逻辑地址,记为:段地址:偏移地址。段地址:8086规定各逻辑段从节的整数边界开始,即段首地址二进制值的低4位是0000,把段首地址的高16位称为段基址或段地址。偏移地址:把某一存储单元相对于段地址的段内偏移量称为偏移地址(也称有效地址EA)。段地址和偏移地址都是是16位无符号二进制数。(2)答:时钟周期:计算机的“时钟”是由振荡源产生的、幅度和周期不变的节拍
10、脉冲,每个脉冲周期称为时钟周期,又称为T状态或T周期,时钟周期是微机系统工作的最小时间单元。总线周期:当CPU访问存储器或输入/输出端口时,需要通过总线进行读或写操作,这个过程称为总线周期(Bus Cycle)。总线周期是利用总线完成一次读/写所需要的时间。指令周期:执行一条指令所需要的时间称为指令周期(Instruction Cycle)。指令周期由1个或多个总线周期组成。解释下边名词:(3)最小模式、最大模式 1分答:最小模式:也称为单处理器模式,是指系统中只有一片8086微处理器,所连接的存储器容量不大、片子不多,所要连接的I/O端口也不多,系统的控制总线就直接由CPU的控制线供给,从而
11、使得系统中的总线控制电路减到最少。最小模式适用于较小规模的系统。最大模式:相对于最小模式而言,适用于中、大型规模的系统。系统中有多个微处理器,其中一个是主处理器8086,其他的处理器称为协处理器,承担某方面专门的工作。需要增加一片8288来对8086CPU发出的控制信号进行变换和组合,以得到对存储器或I/O端口的读/写信号和对锁存器、总线收发器的控制信号。2.答:EU:负责指令的执行,即从总线接口部件BIU的指令队列取指令,指令执行后向BIU送回运算结果,同时把运算结果的状态特征保存到标志寄存器中。BIU:负责CPU与存储器、I/O设备之间的数据传送。BIU完成以下操作:取指令送给指令队列、配
12、合执行部件从指定的内存单元或者外设端口中取数据、将数据传送给执行部件或者把执行部件的操作结果传送到指定的内存单元或外设端口中。8086的BIU和EU在很多时候可以并行工作,使得取指令、指令译码和执行指令这些操作构成操作流水线。 当指令队列中有两个空字节,且EU没有访问存储器和I/O接口的要求时,BIU会自动把指令取到指令队列中。 当EU准备执行一条指令时,它会从指令队列前部取出指令执行。在执行指令的过程中,如果需要访问存储器或者I/O设备,那么EU会向BIU发出访问总线的请求,以完成访问存储器或者I/O接口的操作。如果此时BIU正好处于空闲状态,那么,会立即响应EU的总线请求;但如果BIU正在
13、将某个指令字节取到指令队列中,那么,BIU将首先完成这个取指令操作,然后再去响应EU发出的访问总线的请求。 当指令队列已满,而且EU又没有总线访问时,BIU便进入空闲状态。5 在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着的那条指令了,而BIU 往指令队列装入指令时,总是按顺序进行的。在这种情况下,指令队列中已经装入的指令就没有用了,会被自动消除。随后,BIU 会往指令队列中装入另一个程序段中的指令。3.答:地址信号是CPU 发送给内存或I/O 设备的,所以地址线是单向的;数据信号可以从CPU 发送给内存或I/O 设备,也可以从内存或I/O 设备发送给CPU,故而数
14、据线是双向的。4.答:8086CPU 中有14 个寄存器。它们是:4 个16 位的通用寄存器:AX、BX、CX、DX 和8 个8 位的通用寄存器:AH、AL、BH、BL、CH、CL、DH、DL;指针和变址寄存器SP、BP、 SI、DI;4 个16 位的段寄存器CS、DS、SS 和ES;标志寄存器FR;指令指针寄存器IP。功能略。5.将十六进制数5678H和以下各数相加,试求叫法运算的结果及进算后标志寄存器中6个状态标志的值,用十六进制数表示运算结果。 2分1)7834H 2)1234H 3)8765H答:(1)加法运算的结果为:CEACH;CF=0,PF=1,AF=0,ZF=0,SF=1,OF
15、=1;(2)加法运算的结果为:68ACH;CF=0,PF=1,AF=0,ZF=0,SF=0,OF=0;(3)加法运算的结果为:DDDDH;CF=0,PF=1,AF=0,ZF=0,SF=1,OF=0。6.8086CPU可寻址的存储器地址范围是多少?可寻址的I/O端口地址范围是多少?2分答:8086CPU 可寻址的存储器地址范围是00000HFFFFFH;可寻址的I/O 端口地址范围是0000HFFFFH。7.答:由于8086CPU 提供20 位地址,但8086 中可用来存放地址的寄存器,如IP、SP、BX、SI 等都是16 位的,只能直接寻址64KB。为了寻址1MB 存储空间,8086CPU 采
16、用了典型的存储器分段技术,即将整个存储器空间分为许多逻辑段,每个逻辑段的容量小于或等于64KB。分段后,对存储器的寻址操作不再直接用20 位的物理地址,而是采用段地址加段内偏移地址的二级寻址方式。8.答:将AH的内容送存储单元的操作过程中:M / IO =1,WR = 0,RD =1,DT / R =1;将I/O 端口的内容送AL的操作过程中:M / IO = 0,WR =1,RD = 0,DT / R = 0。9.答:BHE A0 有效的数据引脚 操 作0 0AD15AD0(一个总线周期同时访问奇体和偶体,从奇地址单元读/写字数据的高8 位,从偶地址单元读/写字数据的低8 位)从偶地址读/写
17、一个字61 0 AD7AD0从偶地址读/写一个字节0 1 AD15AD8从奇地址读/写一个字节0 11 0AD15AD8(第一个总线周期从奇字数据的低8位)AD7AD0(第二个总线周期从偶地址单元读/写字数据的高8 位)从奇地址读/写一个字10.简述8086系统复位后各寄存器的状态。 2分答:8086 系统复位后,指令指针(IP)为0000H;CS 寄存器为FFFFH,其他寄存器为0000H;指令队列清空。11. 简述8086系统中为什么一定要有地址锁存器?需要所存哪些信息? 2分答:8086 的A19/S6A16/S3 和AD15AD0 是复用信号,需要地址锁存器将地址信息保存起来,为外接存
18、储器或外设提供地址信息。需要锁存的信号是:地址信号及BHE 信号。12.8086CPU基本的总线周期包括几个时钟周期? 1分答:8086CPU 一个基本的总线周期包含4 个时钟周期:T1、T2、T3 和T4 。在T1 状态,M/ IO有效,指示CPU 访问的是存储器还是外设,之后CPU 往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。在T1 状态,CPU 还必须在ALE 引脚上输出一个正脉冲作为地址锁存信号。BHE信号也在T1 状态送出,它用来表示数据传送的字宽。在T2 状态,CPU 从总线上撤销地址,使总线的低16 位浮空,置成高阻状态,为传输数据作准备。总线的最高4
19、位(A1916)用来输出本总线周期的状态信息。读信号RD或写信号WR在T2 状态变为有效,指示CPU 将进行哪种操作(读或写)。在T3 状态,多路总线的高4 位继续提供状态信息,而多路总线的低16 位上出现由CPU读出的数据或者CPU 从存储器或端口写入的数据。在T4 状态和前一个状态的交界处,CPU 对数据总线进行采样,获得数据,总线周期结束。13.什么情况下需要插入TW周期?应该插入多少个TW取决于什么因素? 2分答:在有些情况下,外设或存储器速度较慢,不能及时地配合CPU 传送数据。这时,外设或存储器会通过“READY”信号线在T3 状态启动之前向CPU 发一个“数据未准备好”信号,于是
20、CPU 会在T3 之后插入1 个或多个附加的时钟周期TW。取决与外设或存储器速度。14.答:两种操作时序的不同之处发生在T1 和T2 状态。 在T1状态,读周期:DT/R应输出低电平;写周期:DT/R应输出高电平。 在T2 状态,读周期:RD有效,而WR无效,AD15AD0 为高阻态;写周期:RD变为无效,而写信号WR变为有效,AD15AD0 在地址撤销之后立即送出要写入存储器或外设端口的数据。715.答:在最小模式下,读信号RD、ALE 和DT/R、DEN等信号直接由CPU 给出;在最大模式下,总线控制器8288 根据2 1 S ,S 和0 S 状态信号产生读信号MRDC和IORC,ALE
21、和DT/R、DEN 也是由8288 发出的,而且DEN 信号的极性与CPU 在最小模式下发出的DEN信号正好相反。8第4章 习题答案1.什么叫寻址方式?8086CPU支持哪几种寻址方式? 2分答:指令中关于如何求出操作数有效地址的方法称为寻址方式。8086CPU支持多种寻址方式,根据操作数的类型及来源大致分为3类:数据寻址、转移地址寻址和I/O寻址。2.答:8086汇编指令可以采用7种基本的数据寻址方式:立即寻址;寄存器寻址;直接寻址;寄存器间接寻址;寄存器相对寻址;基址变址寻址;相对基址变址寻址。与存储器寻址方式(后5种)相比,寄存器寻址方式最快。3.内存寻址方式中,一般只指出操作数的偏移地
22、址,那么,段地址如何确定?如果要用某个段寄存器指出段地址,指令中应该如何表示? 2分答:如果指令中没有用前缀说明操作数存放在哪个段,则操作数默认存放在数据段。8086系统允许操作数存放在代码段、堆栈段或附加段。此时,就需要在指令中利用前缀指明段超越。例如:MOV ES:1225H,AX4.在8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,请计算它们的物理地址是多少? 2分1)MOV BX,12 2)MOV BX,12 3)M
23、OV ES:SI,AX 4)MOV VAR,8 5)MOV BXSI,AX 6)MOV 6BPSI,AL 7)MOV 100H,DX 8)MOV 6BX,CX 9)MOV VAR+5,AX答:(1)寄存器寻址方式(2)寄存器间接寻址方式,PA=10300H(3)寄存器间接寻址方式,PA=20200H(4)直接寻址方式,PA=10060H(5)基址变址寻址方式,PA=10500H(6)相对基址变址寻址方式,PA=12300H(7)直接寻址方式,PA=11000H(8)_寄存器相对寻址方式,PA=10306H(9)直接寻址方式,PA=10065H5.判断指令对错。如果是错误的,请说明原因答。 2分
24、1)XCHG CS,AX 2)MOV BX,1000H 3)XCHG BX,IP 4)PUSH CS 5)POP CS 6)IN BX,DX 7)MOV BYTEBX,1000 8)MOV CS,1000H 9)MOV BX,OFFSET VARSI 10)MOV AX,SIDI 11)MOV COUNTBXSI,ES:AX 6.试述以下指令的区别。 2分1)MOV AX,3000H 与 MOV AX,3000H2)MOV AX,MEM 与 MOV AX,OFFSET MEM3)MOV AX,MEM 与 LEA AX,MEM4)JMP SHORT L1 与 JMP NEAR PTR L15)C
25、MP DX,CX 与 SUB DX,CX6)MOV BPSI,CL 与 MOV DS:BPSI,CL答:(1)源操作数的寻址方式不同。MOV AX,3000H指令的源操作数采用的是立即数寻址方式,MOV AX,3000H指令的源操作数采用的是直接寻址方式。(2)指令执行后,AX的值不同。MOV AX,MEM指令执行后,AX得到的是MEM单元的内容,而MOV AX,OFFSET MEM指令执行后,AX得到的是MEM单元的地址。(3)指令不同。MOV AX,MEMMOV AX,MEM指令执行后,AX得到的是MEM单元的内容,而LEA AX,MEM指令执行后,AX得到的是MEM单元的地址。(4)转移
26、的类型不同。JMP SHORT L1指令实现的是段内转移,而JMP NEAR PTR L1指令实现的是段间转移。(5)指令的执行结果不同。CMP DX,CX指令执行后,DX的值不变,而SUB DX,CX指令执行后,DX的值是两寄存器值的差。(6)操作数所在段不同。MOV BPSI,CL指令访问的是堆栈段的存储单元,而MOV DS:BPSI,CL指令访问的是数据段的存储单元。7.答:(1)MOV BYTE PTR BP,200指令执行后,(58200H)=200H(2)MOV WORD PTR BX,2000指令执行后,(22400H)=2000H8.答:当前栈顶地址是:FE00H:2010H;
27、执行PUSH BX指令后,栈顶地址变为:FE00H:200EH,栈顶2字节内容是:3457H。9.答:(1)(DX)=3C62H,CF=1(2)(DX)=03C6H,CF=0(3)(DX)=18A0H,CF=1(4)(DX)=2BC6H,CF=0(5)(DX)=18B7H,CF=1(6)(DX)=BCC5H,CF=010.答:(AX)CFZFOFSFPF(1)134EH00001(2)0821H00001(3)F142H10011(4)0A6910011(5)F596-(6)0A690000111.设AX和BX是符号数,CX和DX是无符号数,若转移目标指令的标号是NEXT,请分别为下列各项确定
28、CMP和条件转移指令。 5分1)CX值超过DX转移 2)AX值未超过BX转移3)DX为0转移 4)CX值等于小于DX转移答:(1) CMP CX,DXJA NEXT(2)CMP AX,BXJNA NEXT(3)CMP DX,0JZ NEXT(4)CMP CX,DXJBE NEXT12.阅读分析下列指令序列ADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP L5若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1-L5中的哪一个)?1)AX=14C6H, BX=80DCH2)AX=0B568H,BX=54B7H3)AX=42C
29、8H, BX=608DH4)AX=0D023H,BX=9FD0H5)AX=9FD0H, BX=0D023H答:(1) 程序转向L1。(2) 程序转向L1。(3) 程序转向L2。(4) 程序转向L5。(5) 程序转向L5。13.答:因为普通运算指令执行的是二进制数的运算,而BCD码是十进制数,所以,需要对运算结果进行十进制调整。在做BCD码的加、减和乘法运算时,十进制调整指令放在运算指令之后;而作BCD码的除法运算时,在运算指令之前用十进制调整指令对被除数进行调整。14.答:MOV Cl,310SHR bx,cl15.答:(略)16.答:17.答:DATA SEGMENTCOUNT=100HOR
30、G 1000HD_DATA DB COUNT DUP(?)ORG 2170HS_DATA DB COUNT/5 DUP(1,2,3,4,5)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART:MOV AX,DATAMOV DS,AXMOV ES,AXLEA SI,S_DATALEA DI,D_DATAMOV CX,COUNTREP MOVSBMOV AL,1MOV CX,COUNTLEA DI,D_DATAAGAIN:CMP BYTE PTR DI,ALJNZ NEXTMOV BYTE PTR DI, NEXT:INC DILOOP AGAINEXIT: MOV AH,4CHINT 2
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1