资源描述:
《汇编语言(王爽第三版)第10章课程设计1.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计1任务:将实验7中的Poweridea公司的数据按照图10.所示的格式在屏幕上显示出来。解:;注:函数中的标号为防止冲突,都加了本函数名为前缀;在Debug中输入“-g90”,直接运行到结束assumecs:codedatasegmentdb'1975','1976','1977','1978','1979','1980','1981','1982','1983'db'1984','1985','1986','1987','1988','1989','1990','1991','1992'db'1993','1994','19
2、95';以上是表示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
3、;以上是表示21年公司雇员人数的21个word型数据dataendsagencysegmentdb8dup(0)agencyendscodesegmentstart:movax,0b800hmoves,axmovdi,0movcx,80*24x:movbyteptres:[di],'';将屏幕清空movbyteptres:[di+1],0incdiincdiloopxmovax,datamoves,axmovdi,0movbx,0movax,agencymovds,axmovsi,0movdh,4movcx,21x1:pushcxmo
4、vax,es:[di]movds:[si],axmovax,es:[di+2]movds:[si+2],axmovbyteptrds:[si+4],0;显示年份movdl,0movcl,2callshow_strmovax,es:[84+di]pushdxmovdx,es:[84+di+2]calldtoc_dword;显示收入popdxmovdl,20movcl,2callshow_strmovax,es:[84+84+bx]calldtoc_wordmovdl,40;显示雇员数movcl,2callshow_strmovax,es
5、:[84+di]pushdxmovdx,es:[84+di+2]divwordptres:[84+84+bx];计算人均收入并显示calldtoc_wordpopdxmovdl,60movcl,2callshow_stradddi,4addbx,2adddh,1popcxloopx1movax,4c00hint21h;名称:show_str;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址;返回:显示在屏幕上show_s
6、tr:pushaxpushcxpushdxpushespushsipushdimovax,0b800hmoves,axmoval,160muldhadddl,dlmovdh,0addax,dxmovdi,axmovah,clshow_str_x:movcl,ds:[si]movch,0jcxzshow_str_fmoval,clmoves:[di],axincsiincdiincdijmpshow_str_xshow_str_f:popdipopsipopespopdxpopcxpopaxret;名称:dtoc_word;功能:将一个
7、word型数转化为字符串;参数:(ax)=word型的数据,ds:si指向字符串的首地址;返回:ds:[si]放此字符串,以0结尾dtoc_word:pushaxpushbxpushcxpushdxpushsimovbx,0dtoc_word_x:movdx,0movcx,10divcxmovcx,axadddx,'0'pushdxincbxjcxzdtoc_word_fjmpdtoc_word_xdtoc_word_f:movcx,bxdtoc_word_x1:popds:[si]incsiloopdtoc_word_x1popsi
8、popdxpopcxpopbxpopaxret;名称:dtoc_dword;功能:将一个doubleword型数转化为字符串;参数:(dx)=数的高八位,(ax)=数的低八位;返回:ds:[si]放此字符串,以0结尾;备