实验一汇编基本操作.ppt

上传人:牧羊曲112 文档编号:6270451 上传时间:2023-10-12 格式:PPT 页数:39 大小:623KB
返回 下载 相关 举报
实验一汇编基本操作.ppt_第1页
第1页 / 共39页
实验一汇编基本操作.ppt_第2页
第2页 / 共39页
实验一汇编基本操作.ppt_第3页
第3页 / 共39页
实验一汇编基本操作.ppt_第4页
第4页 / 共39页
实验一汇编基本操作.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《实验一汇编基本操作.ppt》由会员分享,可在线阅读,更多相关《实验一汇编基本操作.ppt(39页珍藏版)》请在三一办公上搜索。

1、实验一 汇编基本操作,一、实验目的,熟悉在PC机上建立、汇编、链接、调试、和运行汇编语言程序的全过程;设计一个完整的顺序结构汇编语言程序,学习数据传送和算术运算指令的用法。,源程序(文本文件)*.ASM,目标文件(二进制文件)*.OBJ,可执行文件(二进制文件)*.EXE,库文件(各种函数),masm.exe,link,二、实验内容,示例题:在屏幕上显示信息:“5A”,DATA SEGMENT;定义数据段xdb 5;定义字节型变量x,x值存放于内存DATA段字节偏移量处ydb A;定义字节型变量y,y值存放于内存DATA段字节偏移量1处DATA ENDSCODE SEGMENT;定义代码段(伪

2、指令,编译器使用)ASSUME CS:CODE,DS:DATA(伪指令,编译器使用)START:MOV AX,DATA;数据段在内在重定位,以便程序能够正确引用的在数据段中MOV DS,AX,MOV DL,x;x值即48D(或31H)“5”的ASCII码存入寄器DLMOV AH,2;INT 21H;调用号DOS中断,用于显示DL中存放的字符MOV BX,01MOV DL,BX;通过BX寄存器间接址将y值存入DL(与第3行有相同的作用)MOV AH,2INT 21H;此段语句功能同上一段MOV AH,4CHINT 21H;4C号DOS中断,功能是结束程序,将系统控制权返给操作系统CODE END

3、S;以下两句为伪指令,不占用内存,编译器使用END START,实验步骤,1、从“开始”“运行”输入“CMD”命令,进入仿真DOS状态;2、键入D:,进入D盘(表示回车键);3、输入CD MASM6,进入MASM6目录(即汇编程序所在目录);4、输入EDIT(即DOS下的文本编辑程序)编辑宏汇编语言源程序,或者用TC编辑环境,或者用Windows的文本编辑程序均可。选用你熟悉的文本编辑程序,按要求逐条输入给出的源程序,并对输入完毕的源程序存盘,其文件名由自己定,但文件的扩展名必须是.ASM(如果用Windows编辑程序,文件格式一定要选纯文本文件),文件保存位置为D:MASM6。例如把示例题源

4、程序文件取名为hello.asm。,5、对源程序进行编译以生成.OBJ目标文件(框内为键盘输入的内容,表示回车):D:MASM6MASM hello.asm Microsoft(R)Macro Assembler Version 5.0 Copyright(C)Microsoft Corp 1981-1985,1987,All rights reserved.工 Source filenamehello.ASM:注:源文件名,上边已输入在此直接回车即可 Object filenamehello.OBJ:注:目标文件名,默认与源文件同名 Source ListingNUL.LST:注:列表文件,

5、直接回车表示不生成该文件 Cross-referencenul.CRF:注:交叉索引文件直接回车表示不生成该文件 50636+408356 Bytes symbol space free 0 Warning Errors注:编译过程没有警告性错误 0 Severe Errors注:没有严重错误,编译成功,如不为0刚需打开源程序按此处给出的错误提示修改错误 D:注:返回DOS环境,不同版本时,以上显示内容可能不同,但基本原理是一致的。MASM完成对源程序的编译,若编译过程中发现语法错误,则列出错误的语句代码及错误类型,最后列出警告错误和语法错误的总数。此时,就可以根据错误的性质分析错误,并使用编

6、辑程序修改源程序,再重新汇编源程序,直至汇编后无错误发生为止。,6、链接目标文件,对上步生成的目标文件进行链接生成扩展名为.exe的可执行文件 D:MASM6 LINKMicrosoft(R)8086 Object,linker Version 3.05 Copyright(C)Microsoft Corp 1983,1984,1985,All rights reserved.Object Modules.OBJ:hello注:目标文件名,扩展名不用输入 Run FileHELLO.EXE:注:可执行文件名,默认与目标文件同名 List FileNUL.MAP:注:不输出MAP文件 Libra

7、ries.LIB:注:不链接库文件若连接过程有错,则显示错误信息,此时需要重新调用编辑程序修改源程序,然后再重新汇编,再经过链接,直至无错为止。,7、运行程序及调试程序 连接成功后,在D:MASM6目录下生成了一个可执行文件(扩展名为.exe),DOS下用DIR命令可以看见该文件(或者在Windows中文件管理器中也可看见该文件)。操作者可在该目录下直接键入文件名(或在文件管理器中双击)运行此程序:D:MASM6 hello.exe 注:大小写均可,扩展名可不输入回车后屏幕将显示:5A,自己编程:仿照上面程序,将自己的英文名字打印到屏幕上。反复对以上过程进行练习,认真理解各步的作用,掌握“编辑

8、”、“编译”和“链接”的概念,了解各步的需要的输入文件,输出文件是什么。,实验报告要求(实验1),1.实验题目;2.实验目的;3.实验内容(1).编程任务(2).解决问题的基本思路(3).源程序(4).程序运行步骤4.实验结论;5.本次实验的主要收获和体会(100字左右);,利用debug调试宏汇编程序,debug.exe是DOS系统自带的汇编调试软件,debug命令是DOS的内部命令,只要进入DOS系统在任何目录下都可以运行。,debug调试程序有多种命令,可以显示修改内存、汇编、反汇编、单步运行程序,中断运行程序等,是调试汇编程序的常用工具。,debug可以直接在运行中汇编指令,进行调试,

9、但由于使用这一功能要记住内存地址,所以在这里不做介绍,有兴趣可以看有关的参考书,在这里只介绍完整的源程序的调试方法。,调试步骤:,首先编写源程序,可以用任何文本文字(不带格式符)编辑系统编写源程序,如Windows下的记事本,在这里我们一般使用DOS下的文本编辑器edit.exe,与debug.exe一样,edit也是DOS系统的内部命令,在任何目录下都可以运行。但是要注意,无论用哪种编辑器,源程序的后备名必须是.asm。如a.asm等。,用记事本编辑源程序,文件名为b.asm,在DOS下运行edit,编辑a.asm源程序,输入源程序,文件菜单,可以存盘、重命名、退出等,源文件编辑完成后,存盘

10、退出,这时应将源文件编译成目标程序.obj文件。,同样在DOS下运行宏汇编编译程序masm.exe。这个程序不是DOS系统命令,须将该可执行文件拷贝至源程序的目录处。,在DOS下运行masm命令,同时输入源文件名,编译程序依次询问三个选项,均输入回车,如果源程序无语法错误,提示0个错误,表示已生成a.obj文件,如果存在错误,指出源程序的错误行数,错误类型,应返回编辑器修改。,两个错误,错误,多个逗号,错误,少个逗号,当前光标所在行数,成功生成a.obj文件后,对obj文件进行连接,在DOS的当前目录下执行link.exe文件。,执行link a,对这三个选项均回车跳过,如果源程序没有堆栈段,

11、程序会提示,这时,我们已经成功地生成了a.exe文件,因为这个汇编程序没有涉及到屏幕的输入输出,即运行结果存在内存中,虽然能在DOS及Windows下正确运行,但什么结果都看不到。,为了观察程序的运行结果或为了调试程序,我们需要运行debug.exe调试程序来观察cpu的寄存器的运行状态及数据段内存的数据。,在当前目录下输入debug a.exe,进入debug程序,这是debug的提示符,可以在这个提示符下直接输入debug的各项命令,U 反汇编,可以看源程序格式:U 地址功能:把指定地址范围的内存块全部反汇编,一次最多显示32字节机器码。,机器码,CS:IP,原指令,T:单步运行程序格式:

12、T=地址 功能:从指定地址处,(默认为当前CS:IP地址)处运行一条指令,并显示寄存器内容、标志寄存器的状态和下一条指令。,t 命令,CPU各寄存器内容,标志寄存器状态,下一条指令及地址、机器码,G:执行程序,直至程序结束或断点处。格式:G=地址 断点地址功能:从指定地址或当前地址开始运行,遇到断点则停止,并显示断点处的各种状态。,运行到0015H,0015H处寄存器状态,下一条指令,D 显示内存命令格式:D 地址(例如 D DS:0000)功能:显示指定范围的地址内容,最多128个字节。如 D DS:0020 L 40 显示数据段从0020H开始的40个字节的内容。,显示内存命令,DS:偏移地址,内存内容,均为16进制形式,对应内容的ASCII码,Q 退出debug程序。,返回DOS,标志寄存器的含义:溢出标志OF OV(溢出)NV(不溢出)方向标志DF DN(减量)UP(增量)中断允许标志IF EI(允许)DI(禁止)符号标志SF NG(负)PL(正)零标志ZF ZR(零)NZ(非零)进位标志CF CY(有)NC(无)奇偶标志PF PE(偶)PO(奇)辅助进位标志AF AC(有)NA(无),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号