




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2 1 汇编语言程序上机调试 汇编语言的学习离不开上机实验 汇编语言程序上机操作包括四个步骤 编辑 汇编 连接 调试运行 4 个过程 如图 2 1 所示 编辑编辑 文本编辑器 如文本编辑器 如 EDIT 源程序 文件名源程序 文件名 asm 汇编汇编 汇编程序 如汇编程序 如 MASM EXE 目标模块 文件名目标模块 文件名 obj 连接连接 连接程序 如连接程序 如 LINK EXE 可执行文件 文件名可执行文件 文件名 exe 调试调试 调试程序 如调试程序 如 DEBUG EXE 应用程序应用程序 错误错误 错误错误 错误错误 错误错误 图 Error No text of specified style in document 1 汇编语言程序上机调试过程 常用的汇编器有 MASM Marco Assembler 宏汇编 和 TASM Turbo Assembler 连接器有 LINK 和 TLINK 调试器有 DEBUG 和 TD Turbo Debugger MASM LINK 和 DEBUG 由 Microsoft 公司出品 TASM TLINK 和 TD 由 Borland 公司出品 本书以 Microsoft 公司的汇编工具包为例 介绍汇编语言程序的上机调试过程 注 在学习本节内容时 将重点放在程序调试过程和方法上 暂时不需要去探求实例 的程序代码及各条指令的含义 相关内容在后续章节会详细介绍 2 1 1简单汇编语言源程序简单汇编语言源程序 下面先看一个完整的简单汇编语言源程序 例 Error No text of specified style in document 1 在屏幕上显示字符串 Hello Assembly 源程序 ex201 asm 功能 在屏幕上显示字符串 Hello Assembly DSEG SEGMENT 数据段开始 STRINGDB 0DH 0AH Hello Assembly 0DH 0AH DSEG ENDS 数据段结束 CSEG SEGMENT 代码段开始 ASSUME CS CSEG DS DSEG 设定段寄存器与逻辑段的关系 START MOV AX DSEG MOV DS AX 设置数据段段地址 MOV DX OFFSET STRING 为 DOS 功能调用设置入口参数 MOV AH 9 为 DOS 功能调用设置功能号 INT 21H DOS 功能调用 显示字符串 MOV AX 4C00H 为 DOS 功能调用设置功能号和入口参数 INT 21H DOS 功能调用 返回 DOS 操作系统 CSEG ENDS 代码段结束 END START 汇编结束 8086 8088 系统中 汇编语言以逻辑段为基础 按段的概念来组织代码和数据 通常 数据变量定义在数据段中 程序写在代码段内 逻辑段定义利用 SEGMENT 和 ENDS 一对 伪指令定义 伪指令不会产生机器代码 段开始语句 SEGMENT 中的段名与段结束语句 ENDS 中的段名要相同 从而保持配对 分别用来指示一个逻辑段的开始和结束 段名由 程序员命名 例 Error No text of specified style in document 1 中定义了两个逻辑段 段 名分别为 DSEG 和 CSEG 第 5 行的 ASSUME 伪指令语句告诉汇编程序 从现在开始 CS 寄存器对应 CSEG 段 DS 寄存器对应 DSEG 段 即 DSEG 用作数据段 CSEG 用作代码段 所以程序代码放在 CSEG 段中 最后一行 END START 伪指令 告诉汇编程序将源程序汇编生成目标代码到此结束 即汇编结束点 END 为保留字 START 与第 6 行中起始点标号一致 确定 START 标号为 入口地址 在 END 伪指令之后的代码不会被汇编成目标代码 标号也是由程序员自行命 名 下面我们结合例 Error No text of specified style in document 1 介绍汇编语言程序上 机调试过程 2 1 2编辑编辑 编辑阶段的任务是 输入汇编语言源程序 对源程序进行修改 任意文本编辑软件都可以用来输入和修改汇编语言源程序 如命令行方式下的全屏幕 文本编辑器 EDIT 其他高级语言程序开发工具中的编辑环境 Windows 下的记事本 Notepad 写字板 Writer Word 等 要注意 一定要用纯文本格式来保存汇编源程序 文件 否则无法汇编 汇编语言源程序文件一般应以 ASM 为扩展名 这样可以简化后续 上机步骤中的操作命令 选择 开始 程序 附件 命令提示符 点击启动 DOS 命令窗口 在该窗口中 可 通过同时按下 Alt Enter 快捷键 使该窗口在全屏和窗口之间切换 以方便操作 在命令行 方式下 具体操作如图 2 2 所示 命令输入后回车生效 图 Error No text of specified style in document 2 切换到 masm 文件夹 也可以使用记事本等文本编辑环境完成源代码的录入 正确输入例 Error No text of specified style in document 1 程序代码 保存源程序文件 ex201 asm 可以进入下一个汇编 环节 切换到 D 盘 cd 命令切换到汇编程序 masm 所在的文件夹 打开 edit 编辑器 输入例 2 1 程序代码 2 1 3汇编汇编 汇编阶段的任务是将源程序翻译成由机器代码组成的目标模块文件 OBJ 如果源程序中没有语法错误 MASM 将自动生成一个目标模块文件 ex201 obj 否 则 MASM 将给出相应的错误信息 这时应根据错误信息 重新编辑修改源程序后 再进 行汇编 汇编 ex201 asm 源程序具体操作 输入 masm ex201 asm 如图 2 3 所示 图 Error No text of specified style in document 3 汇编 ex201 asm 文件界面 如果利用分号 结尾命令 如 masm ex201 asm 则汇编程序不再提示输入模 块文件名 列表文件名等 直接采用默认的文件名 默认采用源程序文件相同的主文件名 扩展名则是相应类型文件的扩展名 例如目标模块文件 obj 和列表文件 lst 等 2 1 4连接连接 连接阶段将一个或多个目标文件和库文件连接成一个完整的可执行程序 EXE COM 文件 将 ex201 obj 目标模块文件连接成可执行文件具体操作 输入 link ex201 obj 如图 2 4 所示 图 Error No text of specified style in document 4 连接 ex201 obj 文件界面 汇编命令 目标文件 键入 3 次回车可生成目标 列表文件 文件 需要列表文件或交 交叉文件 叉文件需给出文件名 必须显示 0 个警告错误 和 0 个语法错误 链接命令 键入 3 次回车生成可执行文件 如果要将目 标文件和其它库文件一起连接成可执行文件 则必须输入库文件的文件名 警告 无堆栈 但是不影响运行 如果没有错误 LINK 将生成一个可执行文件 ex201 exe 否则将提示相应的错误信 息 这时需要根据错误信息重新修改源程序文件后再汇编 链接 直到生成可执行文件 2 1 5运行和调试运行和调试 经汇编 连接生成的可执行程序只要输入文件名 回车即可运行 如图 2 5 所示 图 Error No text of specified style in document 5 运行 ex201 文件界面 操作系统装载该文件进入主存 并开始运行 例 Error No text of specified style in document 1 运行效果如图 Error No text of specified style in document 5 所示 如果出现 运行错误 可以从源程序开始排错 也可以利用调试程序帮助发现错误 观测汇编语言程序的执行结果有以下两种不同的方法 适用于不同的汇编语言程序 直接在 DOS 命令下输入该汇编程序的可执行文件名观察执行结果 比如例 Error No text of specified style in document 1 汇编程序 该方法适用于运行结果直接在屏幕上显 示的汇编语言程序 使用 DEBUG 命令观察程序结果 这种方法适用于汇编程序执行后 必须深入观察 机器的各个寄存器内容或内存单元内容的情况 DEBUG 的主要命令列于表 2 1 注意各常用调试命令的使用 表 Error No text of specified style in document 1 DEBUG 主要命令 命令格式功能说明 A 地址 汇编 C 范围 地址内存区域比较 D 范围 显示内存单元内容 E 地址 字节值表 修改内存单元内容 F 范围 字节值表填充内存区域 G 起始地址 断点地址表 断点执行 H 数值 数值十六进制数加减 I 端口地址从端口输入 L 地址 驱动器号扇区号扇区数 从磁盘读 M 范围 地址内存区域传送 N 文件标识符 文件标识符 指定文件 O 端口 字节值向端口输出 P 地址 数值 执行过程 运行程序 运行效果 Q退出 DEBUG R 寄存器名 显示和修改寄存器内容 S 范围 字节值表在内存区域搜索 T 地址 数值 跟踪执行 U 范围 反汇编 W 地址 驱动器号扇区号 扇区数 向磁盘写 DEBUG 命令使用说明 DEBUG 接受和显示的数都用 16 进制表示 且不需要给出后缀字母 H 命令都是一个字母 命令参数随命令而异 命令和参数不区分大小写 分隔符 空格 制表符 逗号等 只是在两个相邻接的 16 进制数之间是必需的 命 令和参数间可以不用分隔符 在提示符出现时 可键入 DEBUG 命令 只有在按回车键后 命令才开始执行 若 DEBUG 检查出一个命令的语法错误 则用 Error 指出错误的位置 可以用 Ctrl Break 键或 Ctrl C 键来打断一个命令的执行 返回 DEBUG 提示符 若一个命令产生相当多的输出行时 为了能看清屏幕上的显示内容 可按 Ctrl S 键 暂停显示 DEBUG 命令参数的说明 除了退出命令 Q 外 其它 DEBUG 命令都可带有参数 地址 地址参数通常表示一个内存区域 或缓冲区 的开始地址 它由段地址和偏 移地址两部分组成 段地址可用一个段寄存器表示 也可用 4 位 16 进制数表示 偏移地址 用 4 位 16 进制数表示 段地址和偏移地址间必须有冒号作为分隔 段地址部分是可省的 在段地址缺省的情况下 除了 A G L T U 和 W 命令隐含使用 CS 寄存器之值外 其他命令隐含使用 DS 寄存器之值 范围 范围用于指定内存区域 缓冲区 由两种表示方式 第一种是用起始地址和 结束地址表示 结束地址不能具有段地址 第二种是用起始地址和长度表示 长度必须以 字母 L 引导 范围最大是 64K 即 0 至 0FFFFH 例如 CS 100 110 CS 100 L10 下面采用 DEBUG EXE 调试程序观察例 Error No text of specified style in document 1 程序执行情况 具体操作步骤如下 1 进入 DEBUG 状态 当例 Error No text of specified style in document 1 程序汇编 连接成功 即生成可 执行文件 ex201 exe 输入 DEBUG ex201 exe 装载 ex201 exe 进入 DEBUG 状态 注意 一定要加文件后缀 exe 否则会报错 如图 2 6 所示 2 反汇编 U 命令 利用反汇编命令 U 可把内存单元的内容作为机器指令 用助记符的形式显示出来 使 用反汇编 U 命令查看程序 ex201 exe 装载后的反汇编 并判断程序的结束地址 如图 2 6 所示 图 Error No text of specified style in document 6 DEBUG 的 U 命令 不带参数的 U 命令 从当前 CS IP 所指处开始 或者紧接着上次反汇编结束地址处 开始反汇编 长度为 32 字节 显示在屏幕上 U 命令的显示分为 3 部分 程序所占的存储 地址 机器码及汇编指令 带参数的 U 命令可以从参数指定的地址处反汇编 3 R 命令 经过上一步反汇编明确了程序在内存中的位置和结束指令位置后 可以开始准备执行 但在执行之前 我们有必要查看一下原来寄存器和内存相关单元内容 从而可以在执行后 对比相关单元内容是否正确装载或改变 利用 R 命令可显示 8086 8088 各寄存器的内容和下一条将要执行的指令 如图 2 7 所 示 各段寄存器的内容与存储器的实际使用情形有关 DEBUG 采用显示标志状态符号的方法反映标志值 每一个标志的状态分别用两个字 母表示 表示 8 个标志状态的符号列于表 2 2 图 Error No text of specified style in document 7 DEBUG 的 R T 命令 表 Error No text of specified style in document 2 DEBUG 中标志状态的符号表示 标志名称溢出 OF 方向 DF 中断 IF 符号 SF 零 ZF 辅助进位 AF 奇偶 PF 进位 CF debug 命令 进入调试模式 程序的结束指令以及地址 因为下面的汇编指令不属于 本程序 程序 的段 首址 程序 的 偏 移量 机器码 汇编指令 反汇编 U 命令 跟踪执行命令 T R 命令查看各寄存器内容 各标志状态 即将执行的下一条指令内存地址 机器码及汇编指令 DS 寄存器已正确设置 置位状态OVDNEINGZRACPECY 复位状态NVUPDIPLNZNAPONC R 命令不仅能显示各寄存器内容 还可修改各通用寄存器和段寄存器内容 还包括指令 指针 IP 和标志寄存器 4 跟踪执行命令 T 查看完寄存器值情况后 我们首先执行两条 T 命令 正确设置好 DS 寄存器值 如图 Error No text of specified style in document 7 所示 两条 T 命令分别完成以下两条指令的 跟踪执行 MOV AX DSEG MOV DS AX 设置数据段段地址 可以看到汇编后的指令 直接用数据段地址 147EH 代替 DSEG MOV 指令为数据传 送指令 是程序中使用最多的一条指令 其汇编指令格式为 MOV dst src dst src 将源操作数 src 传送至目的操作数 dest 因此 前两条指令执行完后 我们可以看到 DS AX 147EH 正确完成了数据段 段地址的设置 利用跟踪执行命令 T 可跟踪执行一条或多条指令 T 命令可指定起始执行地址 地址 参数以等号引导 如地址参数中无段地址 那么就以 CS 为段地址 必须注意 起始地址处 必须是可执行指令 如果无起始地址 那么跟踪执行从 CS IP 所指处开始 如果不指定跟 踪执行指令的条数 那么就跟踪执行一条指令 T 命令会跟踪进入 DOS 功能调用程序 请 注意 一般情况下不要进入 DOS 功能调用程序和 BIOS 程序 5 显示内存单元命令 D 正确设置好 DS 寄存器值后 我们先来查看一下数据段的初始内容 即定义的变量的 存储分配情况 利用命令 D 查看数据段的内容 段地址须根据实际装入的地址而定 在上 一步操作中已正确装入 如图 2 8 所示 显示内容左边是内存单元的逻辑地址栏 中间部 分是字节值 16 进制 右边是把字节值作为 ASCII 码所对应的符号 对于非 ASCII 码 或者非显示符号 用点或者空格表示 从图中我们可以看到例 Error No text of specified style in document 1 定义的字符串在内存中的存储情况 如果之前没有执行 T 命令装载好 DS 值 则 D 命令所跟参数段地址应直接给出 4 位 16 进制数值 不能用 DS 给段地址 图 Error No text of specified style in document 8 DEBUG 的 D G 命令 执行命令 G 命令 显示内存单元 D 命令 6 执行命令 G 观察完数据段情况后 下面我们用断点执行命令 G 连续运行多条指令 如图 Error No text of specified style in document 8 所示 这一步我们指定断点为偏移地址 000AH 的 指令 INT 21H 指令在内存中的存储位置我们在调试模式第 2 步 U 命令查看得到 参见图 Error No text of specified style in document 6 G 命令控制从当前 CS IP 处开 始执行指令 直到断点位置 000AH 暂停 当然 你也可以指定其它断点位置 利用执行命令 G 可以设置断点执行被调试程序 没有指定开始地址的 G 命令从当前 CS IP 处开始执行 直到遇断点或程序正常终止而结束 7 执行过程命令 P 下面我们即将要执行的指令是偏移地址 000AH 单元的指令 INT 21H 注意 此 时最好不要用 T 命令 可以用 P 命令 图 Error No text of specified style in document 9 DEBUG 的 P 命令 如图 Error No
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防分区施工方案(3篇)
- 铜梁拓展公司活动策划方案(3篇)
- 铝板石材施工方案(3篇)
- 观看廉洁影片活动方案策划(3篇)
- 交通管道过路施工方案(3篇)
- 建房封顶施工方案(3篇)
- 北京市朝阳区2023-2024学年七年级上学期期中考试生物考题及答案
- 安徽省芜湖市南陵县2024-2025学年高二上学期第一次月考地理试题含参考答案
- 心理基础考试题目及答案
- 校园美食问答题目及答案
- 首诊负责制度检查分析报告
- 汤小丹《计算机操作系统》官方课件 第四版
- 新药研发方案及计划书模板
- 走近昆曲《牡丹亭》
- 3D打印混凝土材料性能试验方法
- XX学校学校集体备课实施方案细则、方案、计划、制度、总结(全套资料)
- 不良资产项目律师法律尽调报告(模板)
- 医疗设备、器械项目实施方案、服务实施方案
- 非居民金融账户涉税信息尽职调查和信息报送制度
- 世界排名前100的大学校徽
- 附着式钢管抱杆铁塔组立施工方案
评论
0/150
提交评论