凌金煜 L20 2022-11-22 22:56:08 DOS及DEBUG介绍
270 0

“汇编语言(第 2 版,郑晓薇著)配套实验”实验报告

DOS及DEBUG介绍

DOS及DEBUG的使用

2022/9/16

一、实验预习报告

1.实验相关知识的简述

实验楼环境中采用 dosemu 来模拟 DOS 环境,进入 DOS 环境中可以直接启动 DEBUG 程序。

•R ——查看和修改寄存器

•D ——查看内存单元

•E ——修改内存单元

•U ——反汇编,将机器指令变为汇编指令

•T / P ——单步执行

•G ——连续执行程序

•A ——输入汇编指令

•Q ——退出 2.实验原理的预习情况:较好

3.实验注意事项

DEBUG下的标志位表示

在 DEBUG 调试环境下以字母缩写的形式表示各个标志位的状态。进入 DEBUG 后,用 R 命令查看寄存器状态时,可以看到除了陷阱标志以外的标志位的状态。

数的补码运算

在计算机中,对带符号数可用真值和机器数两个概念表示。真值,就是带有“+”、“-”号的实际数值;所谓机器数,则是把“+”、“-”符号数值化(0、1)后所得到的计算机实际能表示的数。机器数有三种码表示,分别是原码、反码和补码。汇编语言中,数都是以补码的形式表示的,因此必须掌握数的补码表示和补码的运算

二、实验报告

1.实验目的与要求:

练习常用的 DOS 命令,熟练掌握 DEBUG 的主要命令的用法。 熟悉汇编语言运行、调试环境及方法。

2.实验环境:实验楼 Linux 环境中进入 DOS 模拟环境

3.设计思路:

用 DIR 命令查看根目录下的文件

用 CD 命令进入 D 盘子目录,并查看子目录中的文件

进入 DEBUG ,用 D 命令查看数据段中 0100H——0200H 单元的内容

用 U 命令查看代码段中 0100H 开始的程序

用 R 命令查看并修改 IP 寄存器的值为 0

用 E 命令修改数据段 5 号、6 号单元的内容为 12 、34

用 A 命令实现 Z = 56 + 41,用 T 命令执行并用 D 命令查看结果

用 U 命令查看刚才用 A 命令输入的汇编指令

4.实验过程及截图记录

C:\〉D:

:: 回车后进入 D 盘

D:\〉CD DOS

:: 进入 DOS 子目录

D:\dos〉DIR

:: 列出目录中的文件

D:\dos〉DEBUG

:: 进入 DEBUG 图片描述 进入 DEBUG ,用 D 命令查看数据段中 0100H——0200H 单元的内容 图片描述 用 U 命令查看代码段中 0100H 开始的程序 图片描述 用 R 命令查看并修改 IP 寄存器的值为 0 图片描述 用 E 命令修改数据段 5 号、6 号单元的内容为 12 、34 图片描述 用 A 命令实现 Z = 56 + 41,用 T 命令执行并用 D 命令查看结果 图片描述 用 U 命令查看刚才用 A 命令输入的汇编指令,它们对应的机器指令是什么? 图片描述 5.实验结果分析

对应的机器指令:

B83800

052900

A30000

59

837EF600

7503

E935FD

8B450Z

8BF98

0BC0

7403

E911FD

837EF400

三、实验总结

修改寄存器 —— 在 R 后跟写寄存器名(比如 R AX),回车后先显示寄存器的内容,在冒号后键入新的值;再用 R 命令就可看到修改后的内容了。

用 D 命令可以查看存储单元的地址和内容。

D 段地址:起始偏移地址 [结尾偏移地址] [L范围]

用 E 命令可以改写多个存储单元的内容。格式为:E 起始地址 修改值 修改值... U 后跟偏移地址,则从该地址开始反汇编。如:

U 0 从代码段0号单元开始反汇编

U100 从代码段100H号单元开始反汇编

在 DEBUG 中,使用 A 命令可以输入汇编指令,系统自动地将键入的汇编指令翻译成机器代码,并相继地存放在从指定地址开始的存储区中。由于 DEBUG 下的数值默认为十六进制数,因此先要将十进制数转换成十六进制数。

T 命令可以一条一条地执行指令。P 命令的作用与 T 命令相同,当遇到中断指令 INT n 和调用指令 CALL 时,应该使用 P 命令,以确保程序正常执行。这是因为 INT n 指令和 CALL 指令都要转移到子程序去执行,T 命令进入子程序后可能无法返回;而 P 命令则直接执行该指令,并将结果带回。遇到循环指令 LOOP 时也应该使用 P 命令,可以使循环快速结束。

键入 Q,回车后退出 DEBUG,返回到 DOS 下。

最新评论
暂无评论~