云南大学软件学院汇编语言实验报告七.docxVIP

云南大学软件学院汇编语言实验报告七.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
云南大学软件学院汇编语言实验报告七

练习:统计男女生人数1.实验内容? 统计一个有10人的班中,男、女生的人数各为多少。将统计结果的男生人数存入变量MAN中,女生人数存入变量WOMAN中。3.编程指导男、女生的标志可用‘l’和‘0’字符来表示,并从键盘输入此标志。根据题意,总人数已知,在此范围下,对输入的标志进行分类求和显然可用循环结构来完成。每循环一????? 应使相应的人数增l,而循环计数值(开始为总人数)减1,直至该计数值为0。这样,我们可用CX作为循环计数值,用LOOP指令对循环的条件进行判定。源程序:DATA????SEGMENT?MAN??DB??0???????????????????;???WOMEN??DB??0???????????????????;?????COUNT???EQU?10??????????????????;?????DISP????DB?0DH,?0AH,?‘MAN?OR WOMEN?1/0???‘,?‘$’?????DISP1???DB?0DH,?0AH,?‘MAN:’,?‘$’?????DISP2???DB?0DH,?0AH,?‘WOMEN:’,?‘$’?DATA????ENDS?CODE????SEGMENT?????????????ASSUME?CS:CODE,?DS:DATA?START:??MOV?AX,?DATA?????????????MOV?DS,?AX?????????????MOV?CX,?COUNT?INPUT:??MOV?DX,?OFFSET?DISP?????????????MOV?AH,?9?????????????INT?21H?????????????MOV?AH,?1??????????INT?21H????;CMP?AL,?‘1’?????????????JZ?MANCOUNT?????????????????????CMP?AL,?‘0’???????????;??????JZ?WOMENCOUNT?????????????JMP?INPUT?MANCOUNT:?????????????INC?MAN????????????????;???????????JMP?LOOPNEXT?WOMENCOUNT:?????????????INC?WOMEN????????????????;女生LOOPNEXT:?????????????LOOP?INPUT?????????????MOV?AH,?4CH?????????????INT?21H?????????????????;CODE??ENDS???????????END?START5.3子程序设计实例实验练习:计算N!程序实验1.实验内容编程计算N!(8 =N =0)的值。要求将计算N!编为递归子程序。2.编程指导由阶乘的递归定义得知:N!=1当N=0时N!=N*(N-1)!当N0时为了求得N!的值必须递归调用(N-1)!的子程序,但每次调用的参数都是不同的。第一次以N为参数,因为要求得N!,必须要先求出(N-l)!,所以第二次调用时是以(N-1)为参数。同样为了求得(N-1)!,必须先求出(N-2)!,.因此第三次调用是以(N-2)为参数,依次类推,直到参数为0时止。此时,将每一步调用的结果相乘就是最终的N!值。设计递归子程序时,必须保证每次对它的调用都不会破坏以前调用时所用的参数和中间结果,因此,在这样的子程序刚开始一般都要对现场进行进栈保护。另外,递归的结束条件也是相当重要的,选择不好,很容易造成死锁,而不能从递归子程序中返回出来。在该例中0!=1,因此,判断入口参数是否为0就是这个递归子程序递归的结束条件。源程序:datarea segmentn dw 3result dw ?datarea endsstack_seg segmentdw 128 dup(0)tos label wordstack_seg endsprognam segmentmain proc farassumecs:prognam,ds:datarea,ss:stack_segstart:movax,stack_segmovss,axmovsp,offsettospushdssubax,axpush axmovax,datareamovds,axmovbx,npushbxcall factpop resultmovdx, result ;mov ah,2int 21hret main endp fact proc near push ax

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档