1 / 18
文档名称:

王爽《汇编语言》第十三章所有练习解答.doc

格式:doc   大小:30KB   页数:18页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

王爽《汇编语言》第十三章所有练习解答.doc

上传人:q1188830 2019/11/22 文件大小:30 KB

下载得到文件列表

王爽《汇编语言》第十三章所有练习解答.doc

文档介绍

文档介绍:请注意,里面有程序和测试程序,,。。。;;安装中断7ch的中断例程;功能:求一个word型数的平方;;assumecs:codecodesegmentstart:;拷贝代码到非系统管理区movax,csmovds,axmovsi,offsetsqr;从cs段的sqr开始复制到0:200处movax,0moves,axmovdi,200hmovcx,offsetsqrend-offsetsqr;cx为需要复制的代码字节数cldrepmovsb;调用movsb把es:[di]的字节拷贝到ds:[si];设置好中断向量movax,0moves,axmovwordptres:[7ch*4],200h;用wordptr指明是要拷贝一个字movwordptres:[7ch*4+2],0movax,3int7chmovax,4c00hint21hsqr:mulaxiretsqrend:nopcodeendsendstart;;安装7ch中断的中断例程;功能:实现将ds:[si]开始的字符串显示出来assumecs:codedatasegmentdb"etomasm!",0dataendscodesegmentstart:;拷贝代码到非系统管理区movax,csmovds,axmovsi,offsetint7c;从cs段的int7c开始复制到0:200处movax,0moves,axmovdi,200hmovcx,offsetint7cend-ldrepmovsb;设置好中断向量movax,0moves,axmovwordptres:[7ch*4],200hmovwordptres:[7ch*4+2],0;dh=行数,dl=烈数,cl=颜色,ds:si指向首地址movdh,10movdl,10movcl,2movax,datamovds,axmovsi,0int7chmovah,01hint21hmovax,4c00hint21hint7c:pushaxpushbxpushcxpushdxpushes;计算好字串开始显示的地址Y=160*(行数-1+列数*2-2,B800:Y;循环将参数里的字串写进显卡内存,并检测到0就返回;bx=160*(行数-1subdh,1hmoval,160muldhmovbx,ax;bx为根据行数算出来的偏移值;ax=列数*2-2moval,2muldlsubax,2;根据列数算出来的偏移值addbx,ax;行数和列数的和存在bx中了movax,0b800hmoves,axmovdl,cl;保存字体颜色属性movch,0s_show_str:movcl,ds:[si]moves:[bx],cljcxzok_show_strmoves:[bx+1],dlincsiaddbx,2jmpshorts_show_strok_show_str:popespopdxpopcxpopbxpopaxiretint7cend:nopcodeendsendstart;;上一个程序的测试程序;测试7ch中断,显示字符串assumecs:codedatasegmentdb"!",0dataendscodesegmentstart:movax,datamovds,axmovdh,10movdl,10movcl,2movsi,0int7chmovax,4c00hint21hcodeendsendstart;;安装7ch中断的中断例程;功能:实现将ds:si开始,0结束的字符串转化为全部转化为大写assumecs:codedatasegmentdb"etomasm!",0dataendscodesegmentstart:;拷贝代码到非系统管理区movax,csmovds,axmovsi,offsetint7c;把中断代码从cs段的int7c开始复制到0:200处movax,0moves,axmovdi,200hmovcx,offsetint7cend-ldrepmovsb;设置好中断向量0:200处movax,0moves,axmovwordptres:[7ch*4],200hmovwordptres:[7ch*4+2],0movax,datamovds,axmovsi,0int7chmovah,01hint21hmovax,4c00hint21hint7c:;将ds:[si]开始的字符比较,如果是小写字母,则将其变为大写;因为是0结尾,这里可以用jcxz;小写字母的范围是61h~7Ah,大写字母比它少20h;可以用jb61h和ja