汇编基本实际操作

上传人:ap****ve 文档编号:115900557 上传时间:2019-11-15 格式:PPT 页数:39 大小:813KB
返回 下载 相关 举报
汇编基本实际操作_第1页
第1页 / 共39页
汇编基本实际操作_第2页
第2页 / 共39页
汇编基本实际操作_第3页
第3页 / 共39页
汇编基本实际操作_第4页
第4页 / 共39页
汇编基本实际操作_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《汇编基本实际操作》由会员分享,可在线阅读,更多相关《汇编基本实际操作(39页珍藏版)》请在金锄头文库上搜索。

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

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

3、21H;4C号DOS中断,功能是结束程序,将系统控制权返给操作系 统 CODE ENDS ;以下两句为伪指令,不占用内存,编译器使用 END START 实验步骤 1、从“开始”“运行”输入“CMD”命令,进入仿真 DOS状态; 2、键入D: ,进入D盘(表示回车键); 3、输入CD MASM6,进入MASM6目录(即汇编程序所 在目录); 4、输入EDIT(即DOS下的文本编辑程序)编辑宏汇编 语言源程序,或者用TC编辑环境,或者用Windows的文 本编辑程序均可。 选用你熟悉的文本编辑程序,按要求逐条输入给出的源程 序,并对输入完毕的源程序存盘,其文件名由自己定,但 文件的扩展名必须是.

4、ASM(如果用Windows编辑程序, 文件格式一定要选纯文本文件),文件保存位置为D: MASM6。例如把示例题源程序文件取名为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: 注:源文件名,上边已输入在此直接回车 即可 Objec

5、t filenamehello.OBJ: 注:目标文件名,默认与源文件同名 Source ListingNUL.LST: 注:列表文件,直接回车表示不生成该文 件 Cross-referencenul.CRF: 注:交叉索引文件直接回车表示不生成该 文件 50636+408356 Bytes symbol space free 0 Warning Errors注:编译过程没有警告性错误 0 Severe Errors注:没有严重错误,编译成功, 如不为0刚需打开源程序按此处给出的错误提示修改错误 D: 注:返回DOS环境 不同版本时,以上显示内容可能不同,但基本原理是 一致的。MASM完成对源

6、程序的编译,若编译过程中发现 语法错误,则列出错误的语句代码及错误类型,最后列出 警告错误和语法错误的总数。此时,就可以根据错误的性 质分析错误,并使用编辑程序修改源程序,再重新汇编源 程序,直至汇编后无错误发生为止。 6、链接目标文件,对上步生成的目标文件进行链接生成扩展名为 .exe的可执行文件 D: MASM6 LINK Microsoft(R) 8086 Object,linker Version 3.05 Copyright(C) Microsoft Corp 1983,1984,1985,All rights reserved. Object Modules .OBJ:hello注

7、:目标文件名,扩展名不用 输入 Run FileHELLO.EXE: 注:可执行文件名,默认与目标文件 同名 List FileNUL.MAP:注:不输出MAP文件 Libraries.LIB: 注:不链接库文件 若连接过程有错,则显示错误信息,此时需要重新调用编辑程序修改 源程序,然后再重新汇编,再经过链接,直至无错为止。 7、运行程序及调试程序 连接成功后,在D: MASM6目录下生成了一个可执行 文件(扩展名为.exe),DOS下用DIR命令可以看见该文 件(或者在Windows中文件管理器中也可看见该文件) 。操作者可在该目录下直接键入文件名(或在文件管理器 中双击)运行此程序: D:

8、 MASM6 hello.exe 注:大小写均可,扩展名可不输 入 回车后屏幕将显示 :5A 自己编程:仿照上面程序,将自己的英文 名字打印到屏幕上。 反复对以上过程进行练习,认真理解 各步的作用,掌握“编辑”、“编译”和“链接” 的概念,了解各步的需要的输入文件,输 出文件是什么。 实验报告要求(实验1) 1. 实验题目; 2. 实验目的; 3. 实验内容 (1). 编程任务 (2). 解决问题的基本思路 (3). 源程序 (4). 程序运行步骤 4. 实验结论; 5. 本次实验的主要收获和体会(100字左右); 利用debug调试宏汇编程序 debug.exe是DOS系统自带的汇编调试软件

9、 ,debug命令是DOS的内部命令,只要进入 DOS系统在任何目录下都可以运行。 debug调试程序有多种命令,可以显示修改 内存、汇编、反汇编、单步运行程序,中断 运行程序等,是调试汇编程序的常用工具。 debug可以直接在运行中汇编指令,进行调 试,但由于使用这一功能要记住内存地址, 所以在这里不做介绍,有兴趣可以看有关的 参考书,在这里只介绍完整的源程序的调试 方法。 调试步骤: 首先编写源程序,可以用任何文本文字(不 带格式符)编辑系统编写源程序,如 Windows下的记事本,在这里我们一般使用 DOS下的文本编辑器edit.exe,与debug.exe一 样,edit也是DOS系统

10、的内部命令,在任何 目录下都可以运行。但是要注意,无论用哪 种编辑器,源程序的后备名必须是.asm。如 a.asm等。 用记事本编 辑源程序 文件 名为 b.asm 在DOS下运行edit, 编辑a.asm源程序 输入源程序 文件菜单,可 以存盘、重命 名、退出等 源文件编辑完成后,存盘退出,这时应将源 文件编译成目标程序 .obj文件。 同样在DOS下运行宏汇编编译程序masm.exe 。这个程序不是DOS系统命令,须将该可执 行文件拷贝至源程序的目录处。 在DOS下运行 masm命令,同时 输入源文件名 编译程序依次询 问三个选项,均 输入回车 如果源程序无语法 错误,提示0个错 误,表示

11、已生成 a.obj文件 如果存在错误,指 出源程序的错误行 数,错误类型,应 返回编辑器修改。 两个错误 错误,多个逗号 错误,少个逗号 当前光标所在行数 成功生成a.obj文件后,对obj文件进行连接, 在DOS的当前目录下执行link.exe文件。 执行link a 对这三个选项 均回车跳过 如果源程序没有堆栈 段,程序会提示 这时,我们已经成功地生成了a.exe文件,因 为这个汇编程序没有涉及到屏幕的输入输出 ,即运行结果存在内存中,虽然能在DOS及 Windows下正确运行,但什么结果都看不到 。 为了观察程序的运行结果或为了调试程序, 我们需要运行debug.exe调试程序来观察cp

12、u 的寄存器的运行状态及数据段内存的数据。 在当前目录下输入 debug a.exe 进入debug程序,这是debug的提 示符,可以在这个提示符下直接 输入debug的各项命令 U 反汇编,可以看源程序 格式: U 地址 功能:把指定地址范围的内存块全部反汇编 ,一次最多显示32字节机器码。 机器码 CS:IP 原指令 T:单步运行程序 格式: T =地址 功能:从指定地址处,(默认为当前CS:IP 地址)处运行一条指令,并显示寄存器内容 、标志寄存器的状态和下一条指令。 t 命令 CPU各寄存器内容 标志寄存 器状态 下一条指令及地 址、机器码 G:执行程序,直至程序结束或断点处。 格式

13、: 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备13022795号 | 川公网安备 51140202000112号