1 / 7
文档名称:

王爽《汇编语言》课程设计一.doc

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

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

分享

预览

王爽《汇编语言》课程设计一.doc

上传人:changjinlai 2019/11/23 文件大小:50 KB

下载得到文件列表

王爽《汇编语言》课程设计一.doc

文档介绍

文档介绍:课程设计(一)一、有除法溢出的dtoc子程序为:dtoc:pushcxs:movcx,10calldivdw;进行16位除法,被除数低16位存放在ax中,高16位存放在dx中,除数为10,存放在cx中,并调用不会产生溢出的除法运算的子程序divdwaddcx,30h;将余数加上30h,就得到十进制数码字符对应的ASCII码mov[si],cx;将十进制数码字符对应的ASCII码存放在数据段中incsipushax;保存此时的axaddax,dx;商是由ax和dx中的数据组合而成,为了判断商是否为0movcx,ax;将商的高16位和低16位加起来,送给cxpopax;恢复axjcxzok;若商为0,则结束子程序jmpshortsok:movbyteptr[si],0;在字符串的结尾添个0callback;调用把字符串反过来的子程序backpopcxretdivdw:movbx,axmovax,dxmovdx,0divcxpushaxmovax,bxdivcxmovcx,dxpopdxretback:pushdipushcxmovcx,simovdi,0s1:moval,[di]movah,0pushaxincdiloops1movdi,0movcx,sis2:popaxmov[di],alincdiloops2popcxpopdiret二、课程设计首先,定义数据的时候,定义了一个栈段,在data段的开始定义了一个有10字节的空间,用来把数据转换成十进制形式的字符串,后面的总收入、雇员数、人均收入均为dword数据,方便后面统一来进行循环处理。其次,刚开始的时候,用一个循环来计算人均收入,并把得到的数据放在data段中(在data段中定义了21个为0的dword数据用来存放人均收入)。再次,在总体思路上,就是先定义一个32*21个字节的table段,把分别用子程序dtoc把每个用二进制存放的数据转换成对应的十进制字符串,把字符串存放到table段中相应的位置,通过四个循环能把所有数据对应的字符串存放到table段中,这时的table段中的存储模式与要求显示在屏幕上的模式一样,所以可以用一个双重循环将table中的内容一个字节一个字节地复制到显示缓冲区的偶地址上,奇地址存放字符的颜色属性白色07h。不用调用子程序show_str。代码如下:代码2assumecs:codestacksegmentdb64dup(0)stackendsdatasegmentdb10dup(0)db'1975','1976','1977','1978','1979','1980','1981','1982','1983'db'1984','1985','1986','1987','1988','1989','1990','1991','1992'db'1993','1994','1995'dd16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514dd345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000dd3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8