- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编语言程序设计实验教程课件
汇编语言程序设计;汇编语言程序设计的实验环境;问题:系统中含有MASM.EXE,LINK.EXE和DEBUG.EXE程序,试说明如何汇编,连接和调试一个名为F1.ASM的程序。(8分)——2001年考研题
答案:
汇编:MASM F1.ASM↙;以形成二进制目标文件
连接:LINK F1.OBJ ↙;以形成可执行文件
调试:DEBUG F1.EXE ↙
调试命令:显示寄存器的内容r,检查内存d,修改内存e,检查代码u,修改代码a,运行g ;上机步骤;;4、用TLINK.EXE产生可执行文件
经过汇编之后生成的目标文件(OBJ)不能在PC机上运行,必须经过连接程序的连接和定位才能生成可执行文件。
方法:TLINK F1.OBJ↙
如果没有错误,LINK就会建立一个F1.EXE文件。如果OBJ文件有错误,LINK会指出错误的原因。对于无堆栈警告信息,可以不予理睬,它不影响程序的执行。如果连接时有其他错误,要检查并修改源程序,重新汇编、连接,直到正确。
;5、执行程序
建立了可执行文件后,就可以直接在DOS下运行此程序。
方法:F1.EXE↙
程序运行结束后,返回DOS。如果运行结果正确且程序已把结果直接显示在屏幕上,那么程序运行结束时结果也就得到了。如果程序不显示结果,则只能通过调试的方法来纠正程序执行中的错误。;实验一 DEBUG程序的使用;(3)MOV DS,2010
(4)PUSH AL
(5)OUT 900,AL
3、用命令U查看8086/8088CPU在开机后执行的第一条指令。
4、用命令D查看DS:200~22F和F000:200 ~22F两内存块的内容,用命令E将数字01H分别填入这两个内存块。比较填入前后的结果,了解可读写内存RAM和只读内存ROM的区别。
5、用A命令汇编一条INT 1C指令,用命令T单步执行该指令,比较指令执行前后CS和IP、堆栈指针SP及堆栈内容变化情况,了解什么是中断向量表、中断向量和中断子程序,掌握中断指令的执行过程。
;三、实验说明
1、在DEBUG下,用户可对所有寄存器、RAM内存随意查看和修改,但由于用户对DOS操作系统在内存中存放情况不了解,可能会将存放有操作系统程序的内存内容破坏,从而可能引起系统运行异常,往往是出现死机现象。故建议使用DOS分配给用户的内存可用区,其低端地址是刚进入DEBUG时,用命令R查看到的CS:IP。涉及到修改内存的命令有A、E、F、M、L等。
2、初学者在使用DEBUG命令修改内存或执行程序时,由于多种原因,出现死机是较经常的现象,可按RESET复位按钮,重新启动系统。
3、用连续执行命令G执行程序时,注意给出执行的首地址,或查看当前CS和IP值是否为要执行程序段的首地址,并注意查看执行的指令流程中有无返回DEBUG功能的程序段,如指令INT 20H或断点设置INT3,否则发出命令后,很容易出现死机。原因是如无程序段使系统返回;命令接受状态,CPU将不断地到内存取指令、执行指令,使用户失去对系统的控制,出现死机。为避免这种情况,可在用户程序段结束前加上一小段返回DEBUG功能的程序段,或用断点方式运行,以避免出现死机。
4、8086/8088CPU在开机后执行的第一条指令在内存FFFF:0H开始处。
5、可读写内存RAM的内容可修改,而只读内存ROM的内容不能修改,故命令E未能将数字01H填入F000:200H~22FH的内存中,内存F000:200H~22FH的内容填写前后保持不变。
6、中断指令INT N是指令系统中较复杂的一条指令,结合教材中对中断指令的介绍,利用DEBUG来学习,加强对中断指令的执行过程、中断向量表、中断向量和中断子程序等内容的理解。;实验二 汇编语言程序设计; LOOP1: MOV AL,BL
INC BL
MUL BL
ADD DX,AX
CMP AX,00C8H
JNA LOOP1
MOV SUM,DX
MOV AX,4C00H;*****
INT 21H
END START
结果保存在DX寄存器中,SUM单元中也有。用R或D命令看结果,结果为045FH。
1、TD:在*****处设置断点,观察结果。
2、DEBUG:G1B↙,观察结果。;作业题;实验三 指令系统与寻址方式;2、使用 寄存器间接寻址时应注意和寄存器寻址方式的区别。
如:MOV AX,B
文档评论(0)