汇编语言程序设计报告.docxVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序设计报告 计算机学院 2011/6/7 题目要求 分支程序设计: 1、编写程序,键入学生成绩(百分制),按A、B、C、D显示在屏幕上。 子程序设计: 2、给定一个数组存放5个小写字母,用地址表传递方法编写子程序,将其 转换成大写字母,并显示在屏幕上。 循环程序设计: 3、设有一段文字,编写一段程序查找字母a出现的次数,并显示在屏幕上。 DOS功能调用: 4、在图形方式下,在屏幕中央绘制一个用“*”表示的等腰三角形。 5、编写一个生成ASCII码表的程序,并显示在屏幕上。 6、根据提示输入任意年份,编写判断闰年的程序,如果是闰年, 则在屏幕上显示“Y”,否则显示“N”。 7、显示杨辉三角形。要求: (1)从键盘接收正整数n; (2)屏幕显示杨辉三角形,显示n行信息; 编程思路: 1. 在数据段设置提示信息,成绩ABCD的显示信息,并预留空间。 利用DOS中断,取得输入的字符,输入字符的ASCII值在30H-39H之间为‘0-9’,不是则报错, 值存入SCORE中,将SCORE的高位分别与9,8,7,6相比, 跳转到设置好的代码区,输出对应成绩(A,B,C,D).若为3位数,则跳到A区,输出A. 2. 在数据段设置ADDRESS存放数据偏移量和COUNT计数器 利用DOS中断,取得输入的字符串存入DX中,偏移量存入STRING,并存入ADDRESS中。 COUNT存入ADDRESS+2地址中,调用子程序TURN,利用SI指针与ADDRESS配合将每个字母由大写转为小写。 3. 在数据段设置STRING用于存放键盘输入字符,COUNT存放字符个数,利用DOS中断,输入字符串存入STRING.编写CHECK模块用于检查输入的字符是否为a,循环执行CHECK模块,为a则BL+1,不为a,SI+1继续检查,直至CX=0,最后输出结果。 4. 堆栈段预留128字节空间存放*.设置SI控制空格数,BX为输出*个数.设置3层循环,分别输出空格数,*数,回车.首先将保护CX行数,将其压入栈中,外层循环按CX列数,输出每行之前的空格数,之后根据BX输出*,此时一行输入完,输出回车换行后,BX+2即*数+2, CX出栈,进入外循环,输出下一行信息。 5. 初始化时设置行列数,第一个字符的ASCII值,设置两层循环,首先CX入栈保护输出行数,外层循环控制输出行数,内循环输出列个数对应的字符数,将要输入的字符存入DL,每输出完一次DL+1,SI值即列数给CX,当CX=0时,输出回车换行,CX出栈,进入外循环准备下一行的输出。 6. 数据段设置提示信息,W存放输入年份的数值M,BUF存放年份字符串。利用DOS中断,取得输入的年份字符串存入BUF中,字符个数存入CL,调用DATACATE把年份字符串转为16进制数值,在调用IFYEARS子模块判断其是否为闰年,输出相应信息。 DATACATE子模块总体设计思想,首先BUF+2给SI,利用循环,和SI指针从高位向低位逐个字符减去30H转为16进制数,将值存入W中。IFYEARS 子模块总体设计思想,将W值给AX,判断能否被100整除,能则在判是否整除400,能则为闰年,不能则不是闰年。若不能整除100,判是否整除4,能则为闰年,不能则不是,输出相应信息。 7. 数据段设置BUF用于存放三角中的数。 总体思想:基于组合数计算杨辉三角,即c(m,n)的输出。 设置两层循环控制输出的行列,一重循环系数m,范围1-n,二重循环系数n,范围1-m。 利用DOS中断,将输入n存入num中。 主程序:内循环调用store将每行三角中的每个值存入buf中,调用外循环进入下一行。 子程序store:由ch,cl传递参数m,n,求组合数C(m,n) ,并转换为10进制数存入buf中,再写入一个空格。 子程序multiply:由bh,bl传递参数p,q,求乘积p(p-1)(p-2)...(p-q+1),并由dx传出。 输出D 输出D 判断高位为7 判断高位为6 输出C 判断高位为9 判断高位为8 输出A 输出B 低位5 开始 输入成绩 判断输入是否为0-9 1. 分支程序设计: 2. 子程序设计: 开始 开始 输入字符串 是字母 输入字符串,CX=COUNT 调用子程序TURN 输出结果 CX=0? 将ACSII-20H 小写变大写 CX-1 输出结果 输出结果(BL+30H) CX=0? SI指向下一字符,CX-1 输入字符串,CX=COUNT 是字母 开始 输入字符串 是否为a Bl+1 3. 循环程序设计: 4. DOS功能调用: BX+2,SI-1, BX+2,SI-1,输出回车,CX出栈 结束程序 CX=BX,输出* CX=0 开始 初始化行列数,*数 CX入栈 CX=0 输出空格数SI C

您可能关注的文档

文档评论(0)

小教资源库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档