您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编语言课后习题答案郑晓薇
习题一1分别将下列二进制数作为无符号数和带符号数转换为十进制和十六进制数11010011,01110111,10000011,00101111,10101010查看正确答案无符号数:11010011=211=D3H,01110111=119=77H,10000011=131=83H,00101111=47=2FH,10101010=170=AAH带符号数:11010011=-45=D3H,01110111=+119=77H,10000011=-125=83H,00101111=+47=2FH,10101010=-86=AAH2十六进制运算1A52H+4438H,3967H-2D81H,37H×12H,1250H×4H查看正确答案5E8AH,0BE6H,3DEH,4940H3将十进制数变为8位补码,做运算(结果用二进制、十六进制、十进制表示)29+53,73-24,-66+82,-102-15查看正确答案00011101+00110101=01010010=52H=8201001001+11101000=00110001=31H=4910111110+01010010=00010000=10H=1610011010+11110001=10001011=8BH=-1174用压缩BCD码计算(结果用二进制、BCD码、十进制表示)29+53,73-24,66+18,132+75查看正确答案00101001+01010011=01111100+00000110=10000010=82H=8201110011-00100100=01001111-00000110=01001001=49H=4901100110+00011000=01111110+00000110=10000100=84H=840000000100110010+01110101=0000000110100111+00000110=0000001000000111=0207H=2075符号位扩展(字节扩展为字,字扩展为双字)20A3H,94H,3456H,7FH,EC00H查看正确答案000020A3H,FF94H,00003456H,007FH,FFFFEC00H6若机器字长为16位,其无符号数表示范围是多少?带符号数表示范围是多少?分别用十进制和十六进制表示。查看正确答案无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH7写出下列十六进制数所能代表的数值或编码:(1)38H(2)FFH(3)5AH(4)0DH查看正确答案(1)38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码(2)FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3)5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4)0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8将下列十进制数分别转换为二进制、十六进制、二进制补码、压缩BCD码和ASCII码:(1)108(2)46(3)-15(4)254查看正确答案(1)108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H(2)46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H(3)–15=11110001B=F1H,补码11110001B,ASCII码2D3135H(4)254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD码0000001001010100,ASCII码323534H9写出下列算式的二进制运算结果,标志位CF、SF、ZF、OF分别是什么值?(1)56+63(2)83-45(3)-74+29(4)-92-37查看正确答案(1)56+63=01110111B,CF=0,SF=0,ZF=0,OF=0(2)83-45=00100110B,CF=0,SF=0,ZF=0,OF=0(3)-74+29=11010011B,CF=0,SF=1,ZF=0,OF=0(4)-92-37=01111111B,CF=1,SF=0,ZF=0,OF=110查表,指出ASCII码0DH、0AH、07H、1BH、20H、40H、50H、70H对应的控制字符。查看正确答案回车、换行、响铃、ESC键、空格键、@、P、p习题二1写出冯·诺依曼计算机的基本特点。2如何解决内存速度与CPU速度不匹配问题。3写出计算机总线的分类与作用。4简述8086CPU寄存器的分组及各自的作用。5标志寄存器中都有哪些标志位与计算结果有关?6简述逻辑地址与物理地址的概念,两者的关系。7存储器为什么要分段?如何分段。88086系统把存储器分为哪四种类型的段?各自的特点是什么。98086CPU的地址线为20根,寻址空间为1MB。最少可划分为多少个逻辑段?最多呢?查看正确答案最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节)10在四种类型的段中通常使用哪些寄存器表示逻辑地址?查看正确答案CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP11字节单元和字单元如何区分?若给出一个地址,如何知道要访问的是字节单元还是字单元?查看正确答案字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。12偶地址单元和奇地址单元在保存数据上有区别吗?查看正确答案对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。13有一个32K字节的存储区,首地址是3302:5AC8H,写出其首单元和末单元的物理地址。查看正确答案首单元的物理地址=38AE8H,末单元的物理地址=38AE8H+7FFFH=40AE7H14什么是有效地址?如何获得有效地址。15存储单元地址和内容表示如下,请画出存储单元存放形式。(1)(1280A)=3456H(2)(20021H)=4DH(3)(33450H)=37A520D1H16根据逻辑地址计算出物理地址,并解释逻辑地址与物理地址的对应关系。(1)2389:3DE9H(2)1230:EC92H(3)14D9:C202H查看正确答案(1)物理地址=27679H(2)物理地址=20F92H(3)物理地址=20F92H(2)和(3)的物理地址是一样的。说明逻辑地址不唯一,多个逻辑地址可对应到同一个物理单元上。17给出段地址和偏移地址如下,计算出对应的物理地址。(CS)=54C3H,(ES)=2569H,(DS)=1200H,(SS)=4422H,(BX)=5678H,(SP)=9945H,(IP)=0E54H,(DI)=63B1H查看正确答案代码段CS:IP的物理地址=55A84H堆栈段SS:SP的物理地址=4DB65H数据段DS:BX的物理地址=17678H附加段ES:DI的物理地址=2BA41H18已知堆栈区大小为512字节,栈底单元的物理地址为15230H。将两个字入栈保存后,当前栈指针所指单元的物理地址是多少?堆栈区中还能保存多少个数据?查看正确答案当前栈指针所指单元的物理地址是1522CH。堆栈区中还能保存254个字。19写出修改当前数据段200H开始的数据区数据的DEBUG命令。查看正确答案执行E20020对当前代码段从100H开始反汇编的DEBUG命令是什么?查看正确答案执行U10021在DEBUG下,要将寄存器CX的值修改为100H,应该执行什么命令?查看正确答案执行RCX,然后输入10022在DEBUG下,怎样将数据段的0号~4号字节单元填入'a'、'b'、'c'、'd'?查看正确答案执行EDS:0‘a’‘b’‘c’‘d’习题三1名词解释:零地址指令,一地址指令,二地址指令。2分别写出与数据有关的7种寻址方式并举例说明。3已知(BX)=1290H,(SI)=348AH,(DI)=2976H,(BP)=6756H,(DS)=2E92H,(ES)=4D82H,(SS)=2030H,请指出下列指令的寻址方式,并求出有效地址EA和物理地址:MOVAX,BXMOVAX,1290HMOVAX,[BX]MOVAX,DS:[1290H]MOVAX,[BP]MOV[DI][BX],AXMOVES:[SI],AX查看正确答案MOVAX,BX源操作数为寄存器寻址,EA无,物理地址无MOVAX,1290H立即寻址,EA无,物理地址无MOVAX,[BX]寄存器间接寻址,EA=1290H,物理地址=2FBB0HMOVAX,DS:[1290H]直接寻址,EA=1290H,物理地址=2FBB0HMOVAX,[BP]寄存器间接寻址,EA=6756H,物理地址=26A56HMOV[DI][BX],AX目的操作数为基址变址寻址,EA=3C06H,物理地址=32526HMOVES:[SI],AX寄存器间接寻址,EA=348AH,物理地址=50CAAH4寄存器间接寻址方式可以使用哪些寄存器作为间址寄存器?5立即寻址方式和寄存器寻址方式的操作数有物理地址吗?6什么是段超越?段超越前缀代表什么?7请指出下列指令的错误:MOVAX,[CX]MOVAL,1200HMOVAL,BXMOV[SI][DI],AXMOVES:[DX],CXMOV[AX],VALUEMOVCOUNT,[SI]查看正确答案MOVAX,[CX]错。CX不能为间址寄存器MOVAL,1200H错。立即数超出8位寄存器范围MOVAL,BX错。两个操作数不匹配MOV[SI][DI],AX错。两个变址寄存器不能在一起MOVES:[DX],CX错。DX不能为间址寄存器MOV[AX],VALUE错。AX不能为间址寄存器MOVCOUNT,[SI]错。两个操作数不能都是存储单元8根据题目要求,写出相应的汇编指令:(1)把BX寄存器的值传送给AX(2)将立即数15送入CL寄存器(3)用BX寄存器间接寻址方式将存储单元中的字与AX寄存器的值相加,结果在AX中(4)把AL中的字节写入用基址变址寻址的存储单元中(5)用SI寄存器和位移量VALUE的寄存器相对寻址方式,从存储单元中读出一个字送入寄存器AX(6)将AX中的数与偏移地址为2000H存储单元的数相减,结果在AX中查看正确答案(1)MOVAX,BX(2)MOVCL,15(3)ADDAX,[BX](4)MOV[BX+SI],AL(5)MOVAX,VALUE[SI](6)SUBAX,DS:[2000H]9写出用下列寻址方式将存储单元X中的第3个字取出,AX与其相加再放入Y单元的指令序列。(1)直接寻址(2)寄存器相对寻址(3)基址变址查看正确答案(1)ADDAX,[X+4]MOVY,AX(2)MOVBX,4ADDAX,X[BX]MOVY,AX(3)MOVBX,4MOVSI,OFFSETXADDAX,[BX+SI]MOVY,AX10在数据寻址方式中,哪种寻址方式的操作数与指令一起存放在代码段?查看正确答案立即寻址方式中操作数(立即数)和指令一起存放在代码段中。习题四1汇编语言程序有什么特点?什么是源程序?2简要说明从源程序到可执行程序的操作过程。3什么是伪指令?汇编指令与伪指令有何区别?写出4种常用的伪指令。48086指令系统分为哪几类?举例说明算术运算类指令的用法。5在8086汇编语言中,哪些段寄存器可以用MOV指令赋值,哪些段寄存器不允许?6堆栈段寄存器SS和栈指针SP可以修改吗?如何修改?7入栈指令PUSH和出栈指令POP可以保存字节数据吗?要保存的话,如何实现?8有哪些方法可以获得操作数的有效地址?9解释下列伪指令的作用:(1)ASSUMECS:CODE,DS:DATA(2)ENDSTART(3)VALUEDW12,35,-6(4)STRINGDB‘INPUT:’(5)MESSDB5DUP(?)(6)XXDD12345678H(7)ORG0320H(8)CON
本文标题:汇编语言课后习题答案郑晓薇
链接地址:https://www.777doc.com/doc-2368384 .html