实验一 Debug 程序的使用

实验一 Debug 程序的使用

实验目的

  1. 熟悉 DEBUG 程序中的命令,学会在 DEBUG 下调试运行汇编语言源程序。
  2. 掌握 8086/8088 的寻址方式及多字节数据的处理方法。

实验内容

  1. 利用 DEBUG 程序中的 “E” 命令,将两个多字节数 12345678H 和 FEDCBA98H 分别送入起始地址为 DS:0200H 和 DS:0204H 两个单元中。
  2. 分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将 DS:0200H 单元和 DS:0204H 单元中的数据相加,并将运算结果存放在 DS:0208H 单元中。

要求:

本次实验的内容均在 DEBUG 下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。

实验过程和程序

  1. 启动 DOS 操作系统
  2. 运行 DEBUG 程序
  3. 用 “A” 命令编辑和汇编源程序

编写代码

  1. 用 “U” 命令反汇编验证源程序

查看反汇编

  1. 程序未执行前,用 “R” 命令观察,相关寄存器的内容

查看寄存器

  1. 在程序未执行前,用 “D” 命令观察 DS:0200H, DS:0204H, DS:0208H 单元的内容

查看数据

  1. 用 “G” 命令运行源程序

运行程序

  1. 再用 “D” 命令观察 DS:0200H ~ DS:020BH 字节单元中的内容

查看结果

实验结果

程序运行结果:

AX = 1110, BX = 1111
DS:0208H 四字节单元的内容:10 11 11 11

试用寄存器间接寻址方式编写程序段,完成上述程序段的功能。

  1. 先使用 “A” 编写代码:

编写代码

  1. “U” 查看反汇编代码

查看反汇编

  1. “G” 运行

运行程序

  1. “D” 查看数据,与上面的代码运行结果一致

查看结果

附加题目

第 1 题

从 DS:0000H 开始的 5 个 16 位带符号数分别记为 x, y, z, v, w,用 E 命令初始化为:540, 1, -1, 1080, 0,试求 w = (v - (x * y + z - 540)) / x

解:

查看反汇编

写入数据

运行程序

查看结果

第 2 题

完成 BX 中 1 的个数的统计

解:

查看反汇编

运行程序

第 3 题

用串操作指令将 DS:0000 开始 20 个字初始化为 0DDCCH。并将这 20 个字的内容复制到其后的 20 个字里

解:

编写代码

查看数据

查看结果