熟悉汇编程序的建立及调试方法(艾孜尔江·艾尔斯兰).docVIP

熟悉汇编程序的建立及调试方法(艾孜尔江·艾尔斯兰).doc

  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文档。上传文档
查看更多
北京工业大学 软件学院 艾孜尔江·艾尔斯兰 PAGE 5 实验二 熟悉汇编程序的建立及其调试方法 (实验员:艾孜尔江·艾尔斯兰) 实验目的 熟悉汇编语言源程序的框架结构,学会编制汇编程序。 熟悉汇编语言上机操作的过程,学会汇编程序调试方法。 实验内容 学习编写汇编语言源程序的方法,了解数据存放格式。 阅读给出的程序,找出程序中的错误。 通过调试给出的汇编语言源程序,了解并掌握汇编语言程序的建立、汇编、链接、调试、修改和运行等全过程。 实验预习 阅读实验指导第9章的内容,了解汇编语言程序建立、汇编、链接、调试的全过程。 下面的汇编语言源程序有错误,试给程序加注释。通过调试手段找出程序中的错误并修改。写出程序的功能,画出程序流程图。 实验步骤 建立汇编语言源程序,对所建立的汇编语言源程序进行编译、链接。 运行DEBUG调试程序,装入被调试程序,用U命令查看调入的程序,记录代码段基值和数据段基值,用R命令查看并记录当前寄存器内容。 用D命令查看并记录内存中数据的存放格式。 用T命令单步运行程序,观察各条指令的执行结果,以及对寄存器、标志位、内存单元的影响,若查找出程序中的错误,则用Q命令退出DEBUG环境,修改汇编语言源程序,重复上述步骤,直至整个程序无误。 若将LEA SI,BLOCK语句改为LEA SI, BLOCK+2*COUNT-2,并将ADD SI,2语句改为SUB SI,2,重新运行程序,观察运行结果。 若重新给出一组数据,则可用E命令重新输入新数据后运行程序,观察并记录运行结果。 若要求找出数据区中的最小数,程序将如何修改,并上机调试。 实验习题与思考 在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置。 答:在DEBUG调试环境中,通过输入D指令查看数据段在内存中的位置。 数据区中以什么形式存放有符号数? 答:有符号数以补码的形式存放。 修改前、后的程序在执行时有何区别(提示:观察数据指针的变化)? 答:原来SI逐渐递增,之后逐渐递减。 程序执行完毕,结果存放在何处? 答:存放在内存数据段MAX里。 总结一下CS,IP,SS,DS,ES设置的区别, 答:CS,SS,DS,ES都是通过ASSUME提前预设与数据段建立联系;IP是通过ORG设置初始量。 观察伪指令PARA和ORG的作用。 答:PARA属定位类型,是对该段起始地址定位。一般,各个逻辑段的首地址在‘节’的整数边界上(每16个存储单元叫做一节),即每个逻辑段的起始地址是16的整数倍。对于PARA—指定定位段的起始地址必须在节的整数边界; ORG定义当前段的偏移地址。 实验报告要求 写出调试正确的程序,并给程序加注释,画出程序的流程图,写出程序的功能。 写出实验中所记录下的内存数据存放格式。 完成实验习题与思考。 实验结果 1:程序功能:对输入的20个数进行比大小,比出最大的数。 流程图: 2: 3: 4: 5: 6: 将第一个数0改成1,结果无差。 7: 将JLE NEXT改为JGE NXT 程序代码 DATASG SEGMENT PARA DATA;去掉冒号 BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 COUNT EQU 20 MAX DW ? DATASG ENDS STACKSG SEGMENT PARA STACK STACK;去掉冒号 DB 256 DUP(?) STACKSG ENDS CODESG SEGMENT;去掉冒号 ASSUME CS:CODESG,DS:DATASG,SS:STACKSG ORG 100H BEGIN:;加上冒号 MOV AX,DATASG MOV DS,AX;修改MOV DS,DATASG LEA SI,BLOCK MOV CX,COUNT DEC CX MOV AX,[SI] CHKMAX: ADD SI,2;加上冒号 CMP [SI],AX JLE NEXT MOV AX,[SI];删掉DEC CX NEXT: LOOP CHKMAX MOV MAX,AX MOV AH,4CH INT 21H CODESG ENDS END BEGIN

文档评论(0)

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

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

1亿VIP精品文档

相关文档