汇编语言王爽检测点答案

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

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

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

资源描述

汇编语言王爽检测点答案第一章.检测点1.1(1)13(2)1024,0,1023(3)8192,1024(4)2^30,2^20,2^10(5)64,1,16,4(6)1,1,2,2,4(7)512,256(8)二进制注:符号'^'指求幂运算(如:2^30指2的30次方)第二章检测点2.1(1)大家做这题的时候一定要注意,要看清楚数制,比如是二进制还是十进制,还是十六进,我当时没注意,做错了!!呵呵!!第一空:F4A3H第二空:31A3H第三空:3123H第四空:6246H第五空:826CH第六空:6246H第七空:826CH第八空:04D8H第九空:0482H第十空:6C82H第十一空:D882H第十二空:D888H第十三空:D810H第十四空:6246H(2)movax,2addax,axaddax,axaddax,ax检测点2.2(1)00010H1000fH(2)0001H2000H检测点2.3共修改了4次ip第一次movax,bx第二次是subax,ax第三次是jmpax第四次是执行jmpax最后ip的值是0因为ax的值是零!!检测点3.1(1)第一空:2662H第二空:E626H第三空:E626H第四空:2662H第五空:D6E6H第六空:FD48H第七空:2C14H第八空:0000H第九空:00E6H第十空:0000H第十一空:0026H第十二空:000CH注意:ax中存取的是字型数据,高地址存放高字节,低地址存放低字节!!(一定要小心)(2)①写出cpu的执行序列Movax,6622Jmp0ff0:0100Movax,2000HMovds,axMovax,[0008]Movax,[0002]②指令执行顺序寄存器CSIPDSAXBX初值2000H00001000H00movax,6622h2000H00031000H6622H0000jmp0ff0:01001000h00001000H6622H0000movax,2000h1000H00031000H2000H0000movds,ax1000H00052000H2000H0000movax,[0008]1000H00082000HC389H0000movax,[0002]1000H000B2000HEA66H0000③数据和程序在计算机中都是以二进制的形式存放的,在区别程序和数据时,关键是看段地址,如果段地址是ds段,说明该内存中存放的是数据,如果段地址是cs段,说明该内存中存放的是程序指令检测点3.2(1)Movax,2000HMovss,axMovsp,0010H(2)Movax,1000HMovss,axMovsp,0000H注意:出栈时和入栈时的顺序,空栈时栈顶指向的是最高端地址!栈满是栈顶指针指向的是最底端地址!!2。实验任务(1)5BEA5CCA30F0602300FE2200:01005CCA00FC2200:00FE602300FE602301005CCA00FE2200:010030F000FC22000:00FC2E39(2)因为在DEBUG中T命令在执行修改寄存器ss的指令时,会产生中断,将现场保护起来,下一条指令也紧接着被执行!!实验三:该实验自己做吧我做出来的东西只是我pc上的数据,可能在别的pc做出来的结果会不一样,在加之数据太多,我做了两次数据都没有完整的记下来,只好作罢!!实验四:[bx]和loop的使用(1)assumecs:codecodesegmentmovax,0movds,axmovcx,64movbx,200hs:movds:[bx],axincbxincaxloopsmovax,4c00Hint21hcodeendsEnd(2)如上题我一不小心写出来就是九条指令了!!!呵呵!!(3)具体做法是将那段指令写道内存中,察看其在内存中的起始地址和终止地址,然后将该内存的内容复制到0:200处就可以了!!检测点6.1(1)Movcs:[dx],ax(2)第一空:cs第二空:26或者1ah第三空:popcs:[dx]发表于@2008年08月19日01:11:00|评论(2)|编辑|举报|收藏旧一篇:常用命令(转)|新一篇:实验五:编写、调试具有多个段的程序Copyright©maokaijiangPoweredbyCSDNBlog十一川藏疯狂之旅本文来自CSDN博客,转载请标明出处:王爽汇编语言答案(本答案是自己做的所有题目已在deubg中调试;但难免有差错,发现的提醒我email:maokaijiang1211@163.com谢谢)(1)①1931(一直保持不变,由于pc不同答案有可能不一样)②cs=1943ss=1941ds=1931(由于pc不同,所以答案也可能不同,这只是机子上的数据)③第一空:X—2第二空:X—1(2)1.一直不变2.答案不一样,就不写了3.X-2,X-14.(N/16+1)*16(3)1.一直不变2.答案不一样3.X+3,X+4(4)答:可能执行,如果不指明标号,cpu顺序执行指令,所有可能正确执行!!!!(5);******************************************;将a段和b段指的数据依次相加,将结果保存到c段中;*******************************************assumecs:codeasegmentdb1,2,3,4,5,6,7,8aendsbsegmentdb1,2,3,4,5,6,7,8bendsdsegmentdb8dup(0)dends;*********************************;代码段;*********************************codesegmentstart:movax,dmoves,axmovax,amovds,axmovcx,8movax,0movbx,0again1:movdx,ds:[bx]moves:[ax],dxincbxincaxloopagain1movax,bmovds,axmovax,0movbx,0movcx,8movdx,0again2:adddx,ds:[bx]moves:[ax],dxincaxincbxloopagain2movax,4c00hint21hcodeendsendstart(6);*****************************************************;编写程序,用push指令将a段中的word数据,逆序存储到b段中;******************************************************assumecs:codeasegmentdw1,2,3,4,5,6,7,8aendsbsegmentdw0,0,0,0,0,0,0,0bendscodesegmentstart:movax,bmovss,axmovsp,10hmovax,amovds,axmovbx,0movcx,8s:push[bx]addbx,2loopsmovax,4c00hint21hcodeendsendstart本文来自CSDN博客,转载请标明出处:ht(1)本题略!!!(2);*****************************************************;编程,将datasg段中的每个单词的前四个字母改写为大写字母;******************************************************assumecs:codesg,ss:stacksg,ds:datasgstacksgsegmentdw0,0,0,0,0,0,0,0stacksgendsdatasgsegmentdb'1.displsy'db'2.brows'db'3.replace'db'4.modify'datasgsegmentcodesgsegmentstart:movax,stacksgmovss,axmovsp,16movax,datasgmovds,axmovdx,0movcx,4s0:pushcxmovsi,0movcx,4s1:moval,[bx+si+4]addal,11011111Bmov[bx+si+4],alincsiloops1adddx,16popcxloops0movax,4c00hint21hcodesgendsendstart本文来自CSDN博客,转载请标明出处:://blog.csdn.net/maokaijiang/archive/2008/08/19/2793093.aspxassumecs:codesg,ds:data,es:tabledatasegmentdb'1975','1976','1977','1978','1979','1980','1981','1982','1983'db'1984','1985','1986','1987','1988','1989','1990','1991','1992'db'1993','1994','1995';以上是表示21年的21个字符串dd16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000;以上是表示21年公司总收的21个dword型数据dw3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226dw11542,14430,45257,17800;以上是表示21年公司雇员人数的21个word型数据dataendstablesegmentdb21dup('yearsummne??')tableendscodesgsegmentstart:movax,datamovds,axmovax,tablemoves,axmovcx,21movbx,0movsi,0movdi,0s0:;**************************************;把年份送到table中;**************************************moval,[bx]moves:[di],almoval,[bx+1]moves:[di+1],almoval,[bx+2]moves:[di+2],almoval,[bx+3]moves:[di+3],al;********************************************;把收入送到table中;********************************************movax,54h[bx]movdx,56h[bx]moves:5h[di],axmoves:7h[di],dx;**************************************;把人数送到table中;**************************************movax,0A8h[si]moves:0Ah[di],ax;**************************************;计算人均收入并把其送到table中;*****************************************movax,54h[bx]divwordptr0A8h[si]moves:0Ch[di],axaddsi,2adddi,16adddx,4

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

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

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

×
保存成功