《汇编语言实验报告》.docVIP

  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文档。上传文档
查看更多
《汇编语言实验报告》.doc

汇编语言实验报告 姓名: 专业:软件工程 班级:093班 学号:099074235 实验一 汇编运行环境及方法、简单程序设计 一、程序说明 本程序用来比较两个字符串string1和string2所含的字符是否相同。若相同则显示‘Match’,否则显示‘Nomatch’。 在程序的数据段先定义两个字符串string1和string2,再定义两个字符串mess1和mess2,分别代表‘Match’和‘Nomatch’。再代码段比较字符串string1和string2,通过比较判断是否相同。若相同则显示‘Match’,否则显示‘Nomatch’ 二、试验流程图。 三、调试说明 再EDIT中建立ASM文件,再用汇编程序对源程序汇编产生目标文件Obj, 再用连接程序产生执行文件EXE。再用Debug进行调试。 其中常用到的指令有: 用-g命令来用运行程序,用-u命令来显示程序,用-d 命令来查看数据段的情况,用-e或-f命令来修改需要改正的部分,用-t指令来逐步执行程序,用-r指令来查看寄存器和修改寄存器的值,-q命令用来退出debug程序。在这些命令的后面加上地址,可以将命令执行到相应的地方。 如用-g指令运行程序后,再用-u指令显示程序的执行借给如下: 三、源程序清单和执行结果 DATA SEGMENT STRING1 DB Move the cursor backward. STRING2 DB Move the cursor backward. mess1 db match.,10,13,$ mess2 db no match.,10,13,$ DATA ENDS code segment main proc far assume cs:code,ds:DATA,es:DATA start:mov ax,DATA mov ds,ax mov es,ax lea si,STRING1 lea di,STRING2 cld mov cx,25 repz cmpsb jz match lea dx,mess2 jmp short disp match:lea dx,mess1 disp:mov ah,9 int 21h mov ah,4ch int 21h ret main endp code ends end start 在debug中通过-g命令运行程序后,结果如下: 实验二 用DEBUG编程:使用堆栈段将 AX和BX的内容进行交换等 一、程序说明 本实验包括两个部分,第一个部分是将AX和BX的内容进行交换,并用堆栈作为两寄存器交换内容的中间存储单元;第二部分是用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH, 0BH,0CH,0DH,0EH。在DEBUG状态下送入给出的程序中。 第一个程序先将AX的内容进栈,然后将BX的内容赋给AX,再将出栈的内容赋给BX即可。第二个程序是在进入debug后,用-a指令输入给出的程序,然用-e指令安要求修改内存的内容,再用-t指令逐步执行每条指令,看修改的内存内容对指令执行结果的影响。 二、调试说明 第一部分先将程序编好后,在DOS环境下用masm程序生成obj文件,再用link程序生成exe文件,然后进入debug进行调试,用-t命令逐步运行程序,查看AX和BX中内容的变化。如果发现AX和BX中的内容进行了交换,则说明 程序运行成功。 第二部分先将基本的程序结构编好,再进入debug程序,先用-u指令查看一下程序,结果如下: 再用-a指令从13FC:000B后面输入已给出的程序,然后用-u0指令查看程序,结果如下 这时可以先用-t指令将程序逐步执行到指令mov ax,bx之前,然后用-e300指令安要求修改相关的内存内容,再用-d300指令查看一下修改后的内存内容,结果如下: 然后再用-t指令逐步执行程序,观察每步指令执行后,ax中的内容,结果如下: 可以看出,在执行完指令MOV AX,BX后,ax中的内容为AX=0300,在执行完指令MOV AX,0304H后,ax中的内容为AX=0304,在执行完指令MOV AX,[0304H] 后,ax 中的内容为AX=580E,在执行完指令MOV AX,[BX] 后,ax中的内容为AX=0B0A,在执行完指令MOV AX,0001[BX] 后,ax中的内容为AX=0C0B,在执行完指令MOV AX,[BX][SI]后,ax中的

文档评论(0)

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

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

1亿VIP精品文档

相关文档