- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验二、寻找最大和最小数实验实验目的学习循环程序结构,掌握编写循环处理程序的方法和技巧。通过循环结构程序熟悉汇编语言程序设计的主要方法。了解和掌握程序设计过程中算法的选择。掌握汇编语言调试方法。实验内容以buff开始的内存单元中有9个有符号数(字节型DB):手动输入9个数字请编写程序,找出最大的数并存入MAX单元中,同时也找出最小的数并存入MIN单元中,在Debug下运行程序,查看数据区MAX和MIN的内容检验运行结果。 编程过程1、 在数据段设置buff 区(DB)存放10个被测试的数,再分别设置字节数据MAX、MIN。 BUF db MAX db MIN db2、通过一个循环程序完成比较,先用第一个数与第二个,把较小的数放在AL中,较大的数放在AH中。3、以后每次都用AL与后面的数比较,把小的总放在AL中;然后再用AH与后面的数比较,把大的放在AH中;比较结束后AL和AH分别放最小和最大数。实验步骤在EDIT或其它编辑方式下输入源程序,并以3.ASM名保存。用MASM 文件汇编源程序,CMASM 3;用LINK连接程序,CLINK 3; 形成3.EXE文件。在DEBUG调试环境下调试并运行3.EXE程序。首先用R指令,然后使用U指令查看自己所编写的程序,确定断点后,使用G命令执行程序到断点,查看结果程序执行输入9个数字:123456789 输出:最大值9,最小值16、程序运行结束后,用 D DS:0 检查数据区MAX及MIN内容,检查结果是否正确。 思考查看DOS操作系统把可执行程序装载到的内存的首地址及结束地址。 首地址:1447:0000 ,结束地址:1447:0053查看MAX和MIN的段地址及偏移地址。 MAX:1444:0024 MIN:1444:0025分别计算数据段和代码段占用的地址空间大小。 数据段:40字节 代码段:54字节 附:源程序清单:DATA SEGMENTSTR DB 0AH,0DH,please input number: ,$BUF DB 10 ;BUF大小 DB ? DB 10 DUP(?) ;字符个数 ;CNT EQU $-BUF-3 ;循环次数MAX DB ? ;存放最大数MIN DB ? ;存放最小数CRLF DB 0AH,0DH,$ DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX LEA DX,STR MOV AH,09H INT 21H INPUT: LEA DX,BUF MOV AH,0AH INT 21H MOV CX,CNT-1 MOV BX,OFFSET BUF+2 ;首地址 MOV AH,[BX] ;假定第一个数为最大数 MOV AL,[BX] ;假定第一个数为最小数 LOOP1: INC BX ;指向下一个数 CMP AH,[BX] ;比较 JGE NEXT1 ;AH中数大 MOV AH,[BX] ;AH中数小,替换 JMP NEXT2 NEXT1: CMP AL,[BX] ;比较 JNGE NEXT2 MOV AL,[BX]
文档评论(0)