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

DOS及DEBUG介绍

实验名称:DOS及DEBUG的使用 实验日期:2022年9月11日 一.实验预习报告

  1. 实验相关知识的简述:
  • 微型计算机的字长与微处理器的寄存器位数有关。以 Intel 80X86 系列微处理器为例,CPU 是 8086/8088、80286 的字长是 16 位(二进制位 bit),那么它们的寄存器的位数一定是 16 位的; 32 位字长的微机 CPU 是 80386/80486 或者 Pentium 系列,它们的寄存器的位数则是 32 位的。学习汇编语言我们会用到十六进制(H)的数据形式。

  • 在计算机中还规定采用字节、字、双字等单位来表示数据。例如字节是8位二进制树数;字是16位二进制数;双字是32位二进制数,又称双精度数。

  • 8086 寄存器都是 16 位的寄存器,根据用途可分为 4 种类型。分别是数据寄存器、地址寄存器、段寄存器和控制寄存器。(1)数据寄存器中每个寄存器又可以分为 2 个 8 位的寄存器。分别为 AH、AL,BH、BL,CH、CL,DH、DL。H 表示高字节(高 8 位)寄存器、L 表示低字节(低 8 位)寄存器。(2)地址寄存器包括指针和变址寄存器 SP、BP、SI、DI 四个 16 位寄存器。顾名思义,它们可用来存放存储器操作数的偏移地址,另外,它们也可以作为通用寄存器用。(3)8086CPU 有 4 个 16 位的段寄存器,分别是 CS 代码段寄存器、DS 数据段寄存器、ES 附加段寄存器、SS 堆栈段寄存器。(4)控制寄存器包括 IP 和 FLAGS(又称为 PSW 程序状态字)两个 16 位寄存器,用于控制程序的执行。IP 指令指针寄存器,用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单元的偏移地址。FLAGS 标志寄存器中的某位代表 CPU 的 1 个标志,表示出 CPU 的某种执行状态。最低位为 D0,最高位为 D15。8086CPU 的标志寄存器共有 9 个标志,分别为 6 个条件码标志和 3 个控制标志。

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

  • 对存储单元的标识可以用物理地址或逻辑地址表示。 (1)物理地址:物理地址是内存单元的真实地址,存储单元的物理地址是唯一的。(2)逻辑地址是用户编程时使用的地址,分为段地址和偏移地址。逻辑地址的形式:段地址:偏移地址。 物理地址 = 段地址 × 10H + 偏移地址

  1. 实验原理的预习情况:
  • 实验楼环境中采用 dosemu 来模拟 DOS 环境,进入 DOS 环境中可以直接启动 DEBUG 程序。
  • 无序列表 DEBUG 命令有 20 多个,我们主要学习最常用的命令。 R ——查看和修改寄存器 D ——查看内存单元 E ——修改内存单元 U ——反汇编,将机器指令变为汇编指令 T / P ——单步执行 G ——连续执行程序 A ——输入汇编指令 Q ——退出
  1. 实验注意事项:
  • DOS和DOBEG命令都支持不区分大小写。

二.实验报告

  1. 实验目的:练习常用的 DOS 命令,熟练掌握 DEBUG 的主要命令的用法,为下一步编程打下基础。

  2. 实验环境:(1) DOS 环境:实验环境中安装有 dosemu 可以模拟 DOS 环境,并提供 DEBUG、MASM、LINK 等汇编语言开发程序。(2)进入 DOS 和 DEBUG

  3. 实验过程及截图记录: (1)DOS 命令用法

  • 用两种方法在实验楼 Linux 环境中进入 DOS 模拟环境 具体操作如下(1)在桌面上双击 “Xfce 终端” 程序进入 Linux 的命令行终端。在启动的 Xfce 命令行界面中输入dosemu 进入 DOS 环境,退出 DOS 环境,在 DOS 中输入命令exitemu 图片描述 (2)在桌面上双击 dosemu 图标,直接进入 DOS。 图片描述

  • 用 DIR 命令查看根目录下的文件 图片描述

  • 用 CD 命令进入 D 盘子目录,并查看子目录中的文件
    图片描述 (2)DEBUG 命令用法

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

  • 用 U 命令查看代码段中 0100H 开始的程序 图片描述

  • 用 R 命令查看并修改 IP 寄存器的值为 0 图片描述

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

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

  • 用 U 命令查看刚才用 A 命令输入的汇编指令,它们对应的机器指令是什么? 图片描述

  1. 实验结果分析
  • 在实验之前首先瑶要清楚实验所需各个指令的使用方法以及格式。例如在用D指令时查看不同的段有不同的表示方式,本实验查看数据段,就一定不要忘记DS.

  • A命令的使用一定要把数由十进制转换为十六进制才能正确输入,在用命令查看智之前,一定不要忘记用命令修改IP的值为0100.

三.实验总结

本次实验是学习汇编语言上机的第一个实验,遇到了很多问题并且得到了解决。首先是对于实验的整体思路需要把握好,在进行实验之前,一定要认真了解实验需要储备的基础知识,不能需要什么知识,在回头去看,这样会大大延长所需时间。其次是在汇编语言实验中输入指令时,一定要先注意输入的字符是否是英文字符。最后,本次实验练习常用的 DOS 命令,让我初步了解DEBUG 的主要命令的用法,为下一步编程打下基础。

最新评论
暂无评论~