- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 项目05 活动目录.ppt
- 第10章 80X86到Pentium汇编语言程序设计.ppt
- 第2章第1讲 linux文件目录与属性.ppt
- new_ch6-6.1文件6.2文件目录6.3文件组织和数据存储.ppt
- 《微积分(上)》目录.ppt
- 电子杂志目录制作流程11.ppt
- 第一章汇编语言程序设计.ppt
- 2.windows server 2003安装和管理活动目录.ppt
- Java实验2011.ppt
- 汇编语言程序设计08.ppt
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)