微机接口技术1

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

“微机系统原理与接口技术”第一章习题解答(部分)1.写出下列原码机器数的真值;若分别作为反码和补码时,其表示的真值又分别是多少?(1)(01101110)二进制原码=(+1101110)二进制真值=(+110)十进制真值(01101110)二进制反码=(+1101110)二进制真值=(+110)十进制真值(01101110)二进制补码=(+1101110)二进制真值=(+110)十进制真值(2)(10110101)二进制原码=(-0110101)二进制真值=(-53)十进制真值(10110101)二进制反码=(-1001010)二进制真值=(-74)十进制真值(10110101)二进制补码=(-1001011)二进制真值=(-75)十进制真值2.写出下列二进制数的原码、反码和补码(设字长为8位):(1)(+1010110)二进制真值=(01010110)原码=(01010110)反码=(01010110)补码(3)(-1010110)二进制真值=(11010110)原码=(10101001)反码=(10101010)补码3.下面各二进制数分别代表原码、反码和补码时,其等效的十进制数值为多少?(2)(11111111)二进制原码=(-127)十进制真值(11111111)二进制反码=(-0)十进制真值(11111111)二进制补码=(-1)十进制真值(3)(10000000)二进制原码=(+0)十进制真值(10000000)二进制反码=(-127)十进制真值(10000000)二进制补码=(-128)十进制真值4.已知X1=+0010100,Y1=+0100001,X2=0010100,Y2=0100001,试计算下列各式(设字长为8位):(1)[X1+Y1]补=[X1]补+[Y1]补=00010100+00100001=00110101(2)[X1-Y2]补=[X1]补+[-Y2]补=00010100+00100001=00110101(3)[X2-Y2]补=[X2]补+[-Y2]补=11101100+00100001=00001101(4)[X2+Y2]补=[X2]补+[Y2]补=11101100+11011111=110010115.用补码判断下列算式是否发生溢出,若不溢出,计算其结果(设字长为8位):(4)8560=[10101011]补+[11000100]补运算结果显示:最高位有进位,次高位无进位,结果溢出。6.将下列数表示成规格化的单精度浮点数:(1)(69.34)十进制=(01000101.0101011100010100…)二进制=(1.0001010101011100010100)二进制×26=(01000010100010101010111000101000)单精度浮点数(2)(-38.57)十进制=(-100110.1001000111101…)二进制=(-1.001101001000111101…)二进制×25=(11000010000110100100011110101110)单精度浮点数注:小数部分根据具体精度要求取一定位数即可。通常至少保证5位有效位数。7.将下列数值转换为BCD码:(2)12710=(000100100111)组合BCD(3)00100010B=3410=(00110100)组合BCD8.下面各ASCII码分别代表什么字符?(1)(41H)ASCII码=‘A’(2)(72H)ASCII码=‘r’(3)(65H)ASCII码=‘e’(4)(20H)ASCII码=‘’(空格)9.写出下列字符的ASCII码:(1)‘9’=(39H)ASCII码(2)‘C’=(43H)ASCII码(3)‘$’=(24H)ASCII码(4)‘(’=(28H)ASCII码“微机系统原理与接口技术”第二章习题解答(部分)1.请将左边的术语和右边的含义联系起来,在括号中填入右边的代号字母。(1)字长(i)a.指由8个二进制位组成的通用基本单元。(2)字节(a)b.是CPU指令执行时间的刻度。(3)指令(h)c.CPU所能访问的存储单元数,与CPU地址总线条数有关。(4)基本指令执行时间(g)d.惟一能代表存储空间每个字节单元的地址,用5位十六进制数表示。(5)指令执行时间(j)e.CPU执行访问存储器或I/O操作所花时间。(6)时钟周期(b)f.由段基址和偏移地址组成,均用4位十六进制数表示。(7)总线周期(e)g.指寄存器加法指令执行所花时间。(8)Cache(k)h.完成操作的命令。(9)虚拟存储器(l)i.指CPU在交换、加工、存放信息时信息位的最基本长度。(10)访存空间(c)j.各条指令执行所花时间,不同指令值不一。(11)实际地址(d)k.为缓解CPU与主存储器间交换数据的速度瓶颈而建立的高速缓冲存储器。(12)逻辑地址(f)l.CPU执行程序时看到的一个速度接近内存却具有外存容量的假想存储器。3.在下列各项中,选出8086的EU和BIU的组成部件,将所选部件的编号填写于横线上。EU(3).(7).(9).(12)BIU(4).(5).(6).(8).(10).(11)(1)地址部件AU(2)段界检查器(3)ALU(4)20位地址产生器(5)20位物理地址加法器(6)指令队列(7)状态标志寄存器(8)总线控制逻辑(9)控制单元(10)段寄存器组(11)指令指针(12)通用寄存器组4.试将左边的标志和右边的功能联系起来。要求:(1)在括号中填入右边的功能代号。(2)填写其类型(属于状态标志填S,属于控制标志填C)。(3)写出各标志为0时表示的状态。标志类型为0时表示的状态1.SF(b)a.陷阱标志S结果为正数2.CF(d)b.符号标志S无进位/借位3.AF(h)c.溢出标志S无进位/借位4.DF(i)d.进位标志C数据串操作的增量地址为自动递增5.TF(a)e.零标志C正常执行方式6.OF(c)f.奇偶标志S无溢出7.PF(f)g.中断允许标志S奇数个18.IF(g)h.辅助进位标志C无可屏蔽中断产生9.ZF(e)i.方向标志S结果不为07.有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的实际地址PA。首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H+27H=62DAEH注:20个字共占用了40个字节,末单元的偏移量为39(即十六进制的27H)8.若一个程序段开始执行之前,(CS)=97F0H,(IP)=1B40H。试问该程序段启动执行指令的实际地址是多少?实际物理地址=97F00H+1B40H=99A40H9.若堆栈段寄存器(SS)=3A50H,堆栈指针(SP)=1500H,试问这时堆栈栈顶的实际地址是多少?堆栈栈顶的实际物理地址=3A500H+1500H=3BA00H12.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H和00135H,试画出它们的存储器示意图。地址内容00130H0DAH00131H31H00132H00133H00134H00135H7F00136H5E13.有一个32位的地址指针67ABH:2D34H存放在从00230H开始的存储器中,试画出它们的存放示意图。地址内容00230H34H00231H2DH00232H0ABH00233H67H14.将下列字符串的ASCII码依次存入从00330H开始的字节单元中,试画出它们的存放示意图:U︺E︺S︺T︺C(︺为空格符)地址内容00330H5500331H2000332H4500333H2000334H5300335H2000336H5400337H2000338H4315.存储器中每一个段最多为64KB,当某程序routadf运行后,用DEBUG命令显示出当前各寄存器的内容如下,要求:(1)画出此时存储器分段的示意图。说明地址内容…代码段(附加段)首地址11A70H…堆栈段首地址21BE0H…堆栈段末地址21CA7H栈底21CA8H…代码段首地址31B80H…(2)写出各状态标志的值:BC:debugroutadf.exerAX=0000BX=0000CX=006DDX=0000SP=00C8BP=0000SI=0000DI=0000DS=11A7ES=11A7SS=21BECS=31B8IP=0000NVUPEIPLNZNAP0NCOF=0,DF=0,IF=1,SF=0,ZF=0,AF=0,PF=0,CF=016.已知(SS)=20A0H,(SP)=0032H,欲将(CS)=0A5BH,(IP)=0012H,(AX)=0FF42H,(SI)=537AH,(BL)=5CH依次推入堆栈保存。要求:(1)画出堆栈存放示意图。地址内容…入栈完毕时的当前栈顶SP20A28H5CH20A29H?20A2AH7AH20A2BH53H20A2CH42H20A2DH0FFH20A2EH12H20A2FH00H20A30H5BH20A31H0AH栈底(初始栈顶SP)20A32H?(2)写出入栈完毕时SS和SP的值:(SS)=20A0H(不变),(SP)=0028H“微机系统原理与接口技术”第三章习题解答1.下列各条指令是否有错?如果有,请指出错误之处并改正。(1)MOVDS,1000H(2)MOV[100],23H(3)ADDAX,[BX+BP+6](4)PUSHDL(5)INAX,[3FH](6)OUT3FFH,AL(7)LESSS,[SI](8)POP[AX](9)IMUL4CH(10)SHLBX,5(11)INT300(12)XCHGDX,0FFFH答:(1)错误。不允许直接向段寄存器送立即数,可改为:MOVAX,1000HMOVDS,AX(2)错误。该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPTR或WORDPTR说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOVBYTEPTR[100],23H(3)错误。不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX,[BX+DI+6](4)错误。堆栈操作应以字为单位进行,而DL是一个字节。可改为:PUSHDX(5)错误。在输入/输出指令中,8位端口地址应直接写在操作数处。可改为:INAX,3FH(6)错误。端口地址3FFH已超出8位二进制表示范围,16位端口地址应用DX。可改为:MOVDX,3FFHOUTDX,AL(7)错误。LES指令的目操作数应该是通用寄存器,不能是段寄存器。可改为:LESAX,[SI](8)错误。AX不能用于间接寻址,间接寻址只能用BX、BP、SI、DI四个寄存器之一。可改为:POP[BX](9)错误。立即数不能做乘法指令的操作数,可改为:MOVBL,4CHIMULBL(10)错误。当逻辑移位的次数大于1时,应该用CL指示次数。可改为:MOVCL,5SHLBX,CL(11)错误。操作数300255,已超出有效的中断类型码范围。(12)错误。XCHG指令不允许立即数做它的操作数。可改为:MOVCX,0FFFHXCHGDX,CX2.请指出以下各指令的源、目的操作数所使用的寻址方式。(1)MOVSI,2100H(2)SBBDISP[BX],7(3)AND[DI],AX(4)ORAX,[609EH](5)MOV[BX+DI+30H],CX(6)PUSHES:[BP](7)CALL[DI]DISP(8)JNZShort_label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址(3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址(7)只有一个操作数,为(带位移量的)变址寻址(8)只有一个操作数,为相对寻址3.在已学的指令中,可

1 / 44
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功