您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 微机原理及接口技术习题答案
第一章习题及答案1.微处理器内部包含哪三大部分?解:运算器、控制器和寄存器组。2.完成下列数制的转换①10101101B=()D=()H解:10101101B=173D=ADH。②0.11B=()D解:0.11B=0.75D。③211.25=()B=()H解:211.25=11010011.01B=D3.4H。④10111.0101B=()H=()BCD解:10111.0101B=17.5H=23.3125D=(00100011.0011000100100101)BCD3.已知X=+1011010B,Y=–0011011B,设机器数为8位,分别写出X、Y的原码、反码和补码。解:01011010B01011010B01011010BXXX原反补10011011B11100100B11100101BYYY原反补4.已知X的真值为32,Y的真值为–19,求?YX补解:00001101BXY补5.已知X=51,Y=–86,用补码完成下列运算,并判断是否产生溢出(设字长为8位)。①X+Y②X-Y③–X+Y④–X-Y解:10100011B,因为67CC0,所以未产生溢出。[X]补=00110011B[Y]补=[Y]反+1=[11010110]反+1=10101001+1=10101010B[X+Y]补=[X]补+[Y]补=00110011B+10101010B=11011101BX+Y=[[X+Y]补]补=[11011101]补=10100010+1=10100011B②11110111B,因为67CC1,所以产生溢出。③01110111B,因为67CC1,所以产生溢出。④00100011B,因为67CC0,所以未产生溢出。6.若使与门的输出端输出高电平,则各输入端的状态是什么?解:各输入端为高电平。7.若使与非门的输出端输出低电平,则各输入端的状态是什么?解:各输入端为高电平。8.如果74LS138译码器的Y4端输出低电平,则C、B、A三个输入端的状态分别是什么?解:C、B、A三个输入端的状态分别是‘1’,‘0’,‘0’。第二章习题及答案1.8086/8088CPU由哪两大功能部分所组成?简述它们的主要功能?解:8086/8088CPU由EU和BIU两大功能部分组成。执行单元EU主要完成指令的译码和执行。执行单元通过EU控制电路从BIU中取出指令,经过指令译码形成各种定时控制信号,向EU内各功能部件发出相应的控制命令,以完成指令所规定的操作。总线接口单元BIU是8086/8088同外部联系的接口。它负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等。BIU内部设置指令预取队列,每当指令队列有两个或两个以上的字节空间,且执行单元未向BIU申请读/写存储器操作数时,BIU顺序地预取后续指令的代码,并填入指令队列中。当EU执行的是转移指令时,则BIU清除当前的指令预取队列的内容,从新的地址取回指令,并立即送到EU去执行,然后,从后续的指令序列中取回指令填满队列。2.什么是指令流水线?指令流水线需要哪些硬件支持?解:指令流水线是指8086/8088CPU内部的执行单元EU和总线接口单元BIU通过指令预取队列协同工作从而实现指令的并行执行。指令流水线最主要的硬件支持是BIU内部的指令预取队列。3.逻辑地址如何转换成物理地址?已知逻辑地址为2D1EH:35B8H,对应的物理地址是什么?解:逻辑地址是段基址和段内偏移地址形式的地址。物理地址=段基址×16+段内偏移已知逻辑地址为2D1EH:35B8H,则对应的物理地址2D1EH1635B8H30798H4.8088和8086的指令预取队列的长度分别是多少?解:8088的指令预取队列的长度为4字节;8086的指令预取队列的长度为6字节。5.简述8086/8088CPU内部的各寄存器的作用。解:AX、BX、CX和DX通用寄存器一般用于存放参与运算的数据或运算的结果。SP:用于存放堆栈栈顶的段内偏移量。BP:用于存放访问内存时的偏移地址。SP和BP也可以用来存放数据,它们的默认段寄存器都是SS。SI和DI通常在间接寻址方式中存放操作数的偏移地址。在串操作指令中,DI的默认段寄存器是ES。SI和DI也可以用来存放数据。CS:代码段寄存器,用于存放代码段的段基址。DS:数据段寄存器,用于存放数据段的段基址。SS:堆栈段寄存器,用于存放堆栈段的段基址。ES:附加段寄存器,用于存放附加段的段基址。IP:指令指针寄存器,用于存放CPU即将执行的下一条指令在代码段中的段内偏移地址。FLAGS:标志寄存器,用于存放指令执行结果的特征。6.8086/8088CPU内部的状态标志寄存器共有几位标志位?各位的含义是什么?解:状态标志寄存器共有9位标志位,其中包含6个状态标志位和3个控制标志位。状态标志位:CF(CarryFlag):进位标志。当算术运算结果使最高位产生进位或借位时,则CF=1;否则CF=0。PF(ParityFlag):奇偶标志。若运算结果中的低8位含有偶数个1,则PF=1;否则PF=0。AF(AuxiliarycarryFlag):辅助进位标志。运算过程中若D3位向D4有进位或借位时,AF=1;否则AF=0。ZF(ZeroFlag):零标志。若运算结果为0,则ZF=1;否则ZF=0。SF(SignFlag):符号标志。若运算结果为负,则SF=1;否则SF=0。OF(OverflowFlag):溢出标志。当带符号数的补码运算结果超出机器所能表达的范围时,就会产生溢出,这时OF=1;否则OF=0。控制标志位:DF(DirectionFlag):方向标志。控制串操作指令的地址变化的方向。当DF=0时,串操作指令的地址指针按增量变化;当DF=1时,串操作指令的地址指针按减量变化。IF(InterruptFlag):中断允许标志。控制微处理器是否允许响应可屏蔽中断请求。若IF=1,则允许响应;否则禁止响应。TF(TrapFlag):单步标志。TF=1时,CPU工作在单步方式。7.8086/8088系统中存储器的分段原则是什么?解:分段原则是要求段的起始单元的物理地址是16的整数倍,每段的物理长度为64KB。8.当ALE有效时,8088的地址/数据总线上将出现什么信息?解:当ALE有效时,8088的地址/数据总线上将出现地址信息。9.READY管脚的作用是什么?解:READY用于微处理器时序中插入等待状态。若该引脚被置为低电平,则微处理器进入等待状态并保持空闲;若该引脚被置为高电平,则它对微处理器的操作不产生影响。CPU在读、写操作时序中的T3时钟周期开始处,通过检测READY管脚的状态来决定是否插入TW等待时钟周期,以解决CPU与存储器或I/O接口之间速度不匹配的矛盾。10.为什么在基于8086/8088的系统中经常需要使用缓冲器?解:由于基于8086/8088的系统驱动能力的不足,需要使用缓冲器。11.8088工作在最小模式下包含哪些控制信号?解:最小模式下包含的控制信号有:RD、WR、IO/M、ALE、DT/R、DEN和INTA等信号。12.若CS=4000H,则当前代码段可寻址的存储空间范围是多少?解:CS=4000H时,当前代码段可寻址的存储空间范围为40000H~4FFFFH。第三章习题及答案1.什么叫寻址方式?8086指令系统中有哪几种寻址方式?解:寻址方式,即获得地址的方法,主要指获得段内偏移地址的方法,段基址常采用默认方式获得。8086CPU指令系统的寻址方式有两类:获得指令中操作数地址的方法。获得要执行的下一条指令的地址的方法。8086指令系统中有8种操作数寻址方式,立即寻址。。。。。。。2.下列指令中BUFF为字节类型变量,DATA为常量,指出下列指令中源操作数的寻址方式:(1)MOVAX,1200(2)MOVAL,BUFF(3)SUBBX,[2000H](4)MOVCX,[SI](5)MOVDX,DATA[SI](6)MOVBL,[SI][BX](7)MOV[DI],AX(8)ADDAX,DATA[DI+BP](9)PUSHF(10)MOVBX,ES:[SI]解:(1)MOVAX,1200;立即寻址(2)MOVAL,BUFF;直接寻址(3)SUBBX,[2000H];直接寻址(4)MOVCX,[SI];寄存器间接寻址(5)MOVDX,DATA[SI];寄存器相对寻址(6)MOVBL,[SI][BX];基址变址寻址(7)MOV[DI],AX;寄存器寻址(8)ADDAX,DATA[DI+BP];基址变址相对寻址(9)PUSHF;隐含寻址(10)MOVBX,ES:[SI];寄存器间接寻址3.指出下列指令的错误并改正。(1)MOVDS,1200(2)MOVAL,BX(3)SUB33H,AL(4)PUSHAL(5)MUL45H(6)MOV[BX],[SI](7)MOVSBYTEPTRDS:[DI],BYTEPTRDS:[SI](8)ADDDATA[DI+BP],ES:[CX](9)JMPBYTEPTR[SI](10)OUT3F8H,AL解:(1)MOVDS,1200;不能用立即数给段基址寄存器赋值(2)MOVAL,BX;操作数类型不一致(3)SUB33H,AL;立即数不能作为目的操作数(4)PUSHAL;压栈指令的操作数必须是字类型(5)MUL45H;乘法指令中的操作数不能是立即数(6)MOV[BX],[SI];源和目的操作数不能同时为内存操作数(7)MOVSBYTEPTRDS:[DI],BYTEPTRDS:[SI];目的操作数应该在ES段。(8)ADDDATA[DI+BP],ES:[CX];CX不能做间址寄存器使用(9)JMPBYTEPTR[SI];操作数必须是字类型(10)OUT3F8H,AL;16位的端口地址不能直接在输入输出指令中使用。4.根据要求写出一条(或几条)汇编语言指令。(1)将立即数4000H送入寄存器BX。(2)将立即数4000H送入段寄存器DS。(3)将变址寄存器DI的内容送入数据段中2000H的存储单元。(4)把数据段中2000H存储单元的内容送段寄存器ES。(5)将立即数3DH与AL相加,结果送回AL。(6)把BX与CX寄存器内容相加,结果送入BX。(7)寄存器BX中的低4位内容保持不变,其他位按位取反,结果仍在BX中。(8)实现AX与-128的乘积运算。(9)实现CX中高、低8位内容的交换。(10)将DX中D0、D4、D8位置1,其余位保持不变。解:(1)将立即数4000H送入寄存器BX。MOVBX,4000H(2)将立即数4000H送入段寄存器DS。MOVAX,4000HMOVDS,AX(3)将变址寄存器DI的内容送入数据段中2000H的存储单元。MOV[2000H],DI(4)把数据段中2000H存储单元的内容送段寄存器ES。MOVAX,[2000H]MOVES,AX(5)将立即数3DH与AL相加,结果送回AL。ADDAL,3DH(6)把BX与CX寄存器内容相加,结果送入BX。ADDBX,CX(7)寄存器BX中的低4位内容保持不变,其他位按位取反,结果仍在BX中。MOVAX,BX,NOTAXANDAX,0FFF0HANDBX,000FHORBX,AX(8)实现AX与-128的乘积运算。MOVBX,-128IMULBX(9)实现CX中高、低8位内容的交换。MOVAL,8ROLCXAL(10)将DX中D0、D4、D8位置1,其余位保持不变。0RDX,0111H5.设SS=2000H,SP=1000H,SI=2300,DI=7800,BX=9A00H。说明执行下面每条指令时,堆栈内容的变化和堆栈指针的值。PUSHSIPUSHDIPOPBX解:PUSHSI(0FFFH)=23H(0FFEH)=00HSP=0FFEHPUSHDI(0FFDH)=78H(0FFCH)=00HSP=0FFCHPOPBXBX=7800HSP=0FFEH6.内存中18FC0H、18FC1H
本文标题:微机原理及接口技术习题答案
链接地址:https://www.777doc.com/doc-4652114 .html