实验二 汇编语言程序设计综合实验1.doc

实验二 汇编语言程序设计综合实验1.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 汇编语言程序设计综合实验1

实验二 汇编语言程序设计综合实验1 2.1实验目的 1. 掌握在PC机上建立、汇编、链接、调试和运行8086汇编语言程序的全过程。 2. 学习较复杂的8086汇编语言程序设计的基本方法。 3. 巩固对8086指令系统、汇编语言伪指令的学习和掌握。 2.2实验条件 同11.1.2。 2.3实验内容 采用过程编写一个程序,把键盘输入的十进制数转换成十六进制数。要求在DOS提示符下,键入文件名运行程序后,光标停在第二行的开始处,然后键入十进制数(最大到65535D),程序能够自动在第三行显示转换成的十六进制数。 说明:键入十进制数时,键盘输入的字符为ASCII码,0~9的ASCII码为30H~39H。要显示十六进制数的每一位字符,需用十六进制数0~F的ASCCII字符来显示,其中0~9的ASCII码为30H~39H、A~F的ASCII码为41H~46H。 2.4上机步骤 1. 编辑源程序 用文本编辑器编辑源程序并以扩展名.ASM保存。 2. 汇编源程序 用MASM.EXE对源程序进行汇编。汇编时,MASM.EXE可以检查源程序中的语法错误并指出错误所在的行号。如果有错误,修改源程序中的语法错误并保存文件,然后重新对源程序进行汇编。汇编时没有错误,才会生成目标程序。 3. 连接目标程序 用LINK.EXE对生成的目标程序进行连接,生成可执行程序。 4. 运行可执行程序 在命令提示符下运行可执行程序。键入一个小于65535的十进制数,然后按下ENTER键,如果程序功能设计正确,即可显示出转换的十六进制数,如图2-1所示(DEC2HEX为可执行文件名)。 在0~9、10~99、100~999、1000~9999、10000~65535之间各取一个十进制数键入回车,对显示转换的十六进制数加以验证。最后按Ctrl-C程序退出,返回命令提示符。 如果程序功能设计不正确,得不到正确的显示结果。为了检查程序设计中的错误,需要将可执行程序调入TD中进行调试。 5. 调试程序 在TD中调试程序,就是通过单步运行、设置断点等手段,观察程序运行的中间结果,与预期的结果加以比较和分析,找出程序设计中的功能性错误。如果发现错误,通过修改源程序,重新汇编、连接、运行,直至运行结果正确。 在采用TD调试时,按F7或F8键,单步跟踪程序的执行。F7与F8键的区别是,若当前执行的指令是CALL指令,则F7将跟踪进入被调入的子程序,而F8则把CALL指令及其调用的子程序当作一条完整的指令,要执行完子程序才停在CALL指令的下一条指令上。 本程序由三个子程序组成,也可对三个子程序分别调试。调试每一个子程序时,可通过修改IP指针来从每一个子程序的第一条指令开始单步运行,方法如下:将可执行文件调入TD中,查看代码区中每一个子程序的第一条指令的地址,然后按Tab键选择寄存器区为当前区域,将光标移到IP寄存器,直接键入子程序第一条指令的地址(如图2-2所示),在键入的同时屏幕上会自动弹出编辑输入窗口,最后按OK确认。以后就可用F7或F8键单步执行指令了, 根据需要,也可以修改相关寄存器的内容来验证程序的正确性。 2.5 编程提示、实验程序与框图 按照程序的功能可将程序设计为一个主程序和三个子程序来完成: 子程序一:通过DOS调用来等待键盘键入十进制数,若键入0~9以外的字符则退出该子程序(也可以由程序设定按某一特定键,如ENTER键,退出该子程序)。同时,子程序将键入的十进制数转换为二进制数作为子程序的出口,结果放到一个通用寄存器中(如BX)。 子程序二:将一个通用寄存器(如BX)中的二进制数转换为十六进制数,通过DOS调用由高位到低位逐位显示十六进制数的每一位字符。 子程序三:采用DOS调用,实现回车换行。 1. 主程序及框图 DEC2HEX SEGMENT ASSUME CS:DEC2HEX REPEAT: CALL DEC2BIN CALL CRLF CALL BIN2HEX CALL CRLF JMP REPEAT 2.键入的十进制数转换为二进制数子程序及框图 DEC2BIN PROC NEAR XOR BX,BX ;BX清零,存放转换后的二进制数 NEWCHAR: MOV AH,1 ;DOS功能调用,键入字符 INT 21H SUB AL,30H ;ASCII值到二进制 JL EXIT ;键入值0,则退出 CMP AL,9 JG EXIT ;键入值9,则退出 CBW ;AL中符号扩充到AX

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档