汇编语言程序设计习题答案

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

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

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

资源描述

汇编语言程序设计部分习题答案计算机学院——田原1汇编语言程序设计部分习题答案第一章1.1指令:指令是规定处理器完成某种特定操作的命令代码,指令一般包含操作码和操作数两部分,操作码说明该指令的功能及所要完成的操作,操作数指出该操作对象及结果的存储位置。程序:程序是让计算机完成某些操作、实现某种功能的有序的指令集合。1.2答案在书上P21.1.21.3P41.4对的,P3最上面一句话,面向机器(硬件)的低级语言。1.5答案:P3表1-1上面的一段话1.6对1.7CA1.8B1.9D1.10~1.14略1.151011+0100=11111010-0111=00111010×0101=11001000101010÷0110=01111.16略1.17X=40=00101000Y=120=01111000Z=-18=11101110[X]补+[Y]补=00101000+01111000=10100000溢出[X]补+[Z]补=00101000+11101110=01001100未溢出[Y]补-[Z]补=01111000-11101110=100010100溢出[Z]补-[X]补=11101110-00101000=11000110未溢出1.18A1.19A1.20B1.21记住:A=41H=65a=61H=970=30H=48其他略1.22无符号整数8位补码整数压缩BCD码ASC码35H535335‘5’32H505032‘2’5AH9090无效‘Z’72H11411472‘r’汇编语言程序设计部分习题答案计算机学院——田原21.23答:16位补码表示的整数无符号数00FFH255255FFFFH-165535519H1035103511111111B-1(8位负数补码扩展到16位表示,在原8位补码最高位前补8个1,书上P9页中间段落)255(无符号数扩展,前面补8个0)汇编语言程序设计部分习题答案计算机学院——田原3第二章2.1略2.2略2.3intel80x86系列微型机开机启动时,首先进入实模式,这种模式下可寻址的内存空间最大范围是00000H~FFFFFH,使用20根地址线。2.4intel80x86系列微处理器中,8086是典型的16位微处理器,它只能工作于实模式。80386是最典型的32位微处理器,有实模式、保护模式、虚拟8086模式,在保护模式下最能发挥其功能。2.5不能对ip指针随意读写。2.6~2.13ABCADBDB2.14物理地址分别是:A31052HB1AF80HC19A10HD1A963H2.15~2.19DBCAB2.20ZFSFCFOFPFAF1200+80000100109002+6FFE1010115270+E9900010112+220000102.21①88H②4422H③44H④12000H因为计算机为偶地址寻址,如果使用奇地址需要两次寻址。⑤012004H,读走后IP=0005H汇编语言程序设计部分习题答案计算机学院——田原4第三章3.1略3.2ADDAX,BX寄存器寻址方式MOVCX,1970立即寻址方式MOVBX,[SI]寄存器间接寻址方式CMPBX,TABLE直接寻址方式CMPAX,[BP+DI]基址变址寻址方式CMPAX,ARRAY[BX][DI]相对基址变址寻址方式3.3MOVAL,200H两个操作数类型不一致ADDDL,AX两个操作数类型不一致MOV68,AX立即数不能做目的操作数MOVDS,2000H立即数不能不能直接送段寄存器CMPAL,WORDPTR[BX]两个操作数类型不一致MOVCS,BX目的操作数不可以是段寄存器CSDEC[SI+DI]操作数类型不明确且寻址方式不能两个同为变址寄存器CMP[BX],[SI]两个操作数不能同时为存储器操作数MOVAX,[DX]寄存器间接寻址方式中只能使用BX、BP、SI、DI中的一个MOVDX,ES:AXAX不能作为寄存器间接寻址方式的寄存器且应该加[]。3.4MOVAX,BX不影响标志位CMPAX,BXCF=0OF=0SF=1ZF=0INCBL不影响CFOF=1SF=0ZF=1JNZLL不影响标志位CMPCL,-1CF=0OF=0SF=0ZF=0ADDAL,BLCF=1OF=1SF=0ZF=03.5MOVAX,DS:[1126H]DS:[1126H]=13126HMOVAX,[SI]DS:[SI]=12026HMOVAX,[SI+6]DS:[SI+6]=1202CHCMPAX,VALUE[SI+BP]SS:[VALUE+SI+BP]=30176HINCBYTEPTR[BP]SS:[BP]=30100HADDDX,SS:[SI]SS:[SI]=30026H3.6~3.10BBCACD3.11–E命令是用来显示或者修改内存单元的内容的命令。答:因为这三个逻辑地址指向同一个物理地址120FFH,所以显示的是同一个内存单元的数据,当然完全相同。3.12①该单元内容没有改变,还是00H②81124H③11H汇编语言程序设计部分习题答案计算机学院——田原5④3322H3.13答:执行指令之后,81120H~81125H单元内容变为81120H00H81121H11H81122H44H81123H11H81124H44H81125H55H3.14内存0310:000AH字单元的内容是0310H,DL中内容是10H。3.15①循环了5次②循环了655363.16①累加器AL累加了10次,从0变位了10.②比较AX,BX中的内容,如果相等,将Value指向的内存单元置为0,若不相等,将Value指向的内存单元置为-1.③20+19+……+1④屏幕上显示字符‘B’⑤屏幕上依次显示2、4、6、83.17D3.18AX=20CDHAH=CDHSI=0001HAL=20HAX=8A0FHBX=0001HAL=FFHDI=0012HAX=0101H3.19正序输出26个小写字母,回车换行之后,再逆序输出26个小写字母。3.20程序设计为:DATASSEGMENT;此处输入数据段代码SCOREDB80,90,86,78,92,75,78,79,67,91DATASENDS汇编语言程序设计部分习题答案计算机学院——田原6CODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AX;此处输入代码段代码MOVCX,10LEABX,SCORELL:MOVAL,[BX]ADDAL,2INCBXLOOPLLEXIT:MOVAH,4CHINT21HCODESENDSENDSTART3.21程序设计为:CODESSEGMENTASSUMECS:CODESSTART:MOVCX,9MOVDL,39HMOVAH,2LL:INT21HDECDLLOOPLLMOVAH,4CHINT21HCODESENDSENDSTART汇编语言程序设计部分习题答案计算机学院——田原7第四章4.1略4.2~4.7DCCCCB4.8NUM=4COUNT=44.9BUF是存储在内存单元中占一个字节,VAL不占内存空间在debug中MOVAL,[BUF偏移地址]MOVAH,26;(立即数直接送入AH中)4.9BUF存储在内存单元中,占内存单元,VAL不占内存单元。汇编时MOVAL,[buf的偏移地址]MOVAL,26H4.10依次是:F9H12H44H3CH20H00HFFFFH03H4.11各条指令中原操作数的值为10124224.12依次是BIAEFDHCJG4.13依次是ORG0100HINT20H汇编语言程序设计部分习题答案计算机学院——田原8ENDSTART4.14依次是XDW260DSEGENDSMOVAX,4C00HENDBEGIN4.15程序设计为:DATASSEGMENT;此处输入数据段代码ARRAYDW1970H,310H,68H,227HCOUNT=4SUMDW?DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AX;此处输入代码段代码MOVCX,COUNTMOVAX,0MOVSI,OFFSETARRAYL1:ADDAX,[SI]INCSIINCSILOOPL1MOVAX,4C00HINT21HCODESENDSENDSTART4.16.MODELSMALL.DATAARRAYDW1970H,310H,68H,227HCOUNT=4SUMDW?.CODESTART:MOVAX,@DATAMOVDS,AX;此处输入代码段代码汇编语言程序设计部分习题答案计算机学院——田原9MOVCX,COUNTMOVAX,0MOVSI,OFFSETARRAYL1:ADDAX,[SI]INCSIINCSILOOPL1MOVAX,4C00HINT21HENDSTART4.17COM类型CSEGSEGMENTASSUMECS:CSEG,DS:CSEGORG0100HSTART:MOVCX,COUNTMOVAX,0MOVSI,OFFSETARRAYL1:ADDAX,[SI]INCSIINCSILOOPL1EXIT:INT20HARRAYDW1970H,310H,68H,227HCOUNT=4CSEGENDSENDSTART

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

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

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

×
保存成功