这篇文章上次修改于 201 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
2025-04-10 汇编实验1:利用DEBUG熟悉常用指令的使用
实验目的
熟悉DEBUG中的常用调试命令(如R、D、E、T、A、G、P等),通过实验加深对各种寻址方式的理解;能够熟练使用DEBUG中的命令对指令进行反汇编,观察并了解机器代码。
实验题
任务一:设置寄存器和存储单元
通过DEBUG命令对寄存器和存储单元进行设置,使其满足以下条件:
| 寄存器/存储地址 | 值 | 
|---|---|
| (DS) | 2000H | 
| (BX) | 0100H | 
| (SI) | 0002H | 
| (BP) | 0200H | 
| (SS) | 2300H | 
| (20100) | 12H | 
| (20101) | 34H | 
| (20102) | 56H | 
| (20103) | 78H | 
| (21200) | 2AH | 
| (21201) | 4CH | 
| (21202) | B7H | 
| (21203) | 65H | 
| (23204) | 88H | 
| (23205) | 99H | 
任务二:执行指令并观察结果
分别输入下列指令,并单步执行(T),观察执行结果并截图。说明每条指令执行完成后AX寄存器的内容。
(1) MOV AX, 1200H
源操作数为立即寻址方式
- (AX) = 1200H
 
t = 0
- AX = 1200H
 - BX = 0100H
 - CX = 0009H
 - DX = 0000H
 - SP = 0000H
 - BP = 0200H
 - SI = 0002H
 - DI = 0000H
 - DS = 2000H
 - ES = 0760H
 - SS = 2300H
 - CS = 0770H
 - IP = 0003H
 - 标志位:NU UP EI PL NZ NA PO NC
 

(2) MOV AX, BX
源操作数为寄存器寻址方式
- (BX) = 0100H
 


(3) MOV AX, [1200H]
源操作数为直接寻址方式
- ([1200H]) = (21200H) = 4C2AH
 
(4) MOV AX, [BX]
源操作数为寄存器间接寻址方式
- ([BX]) = (20100H) = 1234H
 


(5) MOV AX, 1100[BX]
源操作数为基址变址加偏移地址寻址方式
- (1100[BX]) = (21202H) = 65B7H
 

(6) MOV AX, [BX][SI]
源操作数为基址变址加偏移地址寻址方式
- ([BX][SI]) = (20102H) = 56H78H
 
AX = 7856H
BX = 0100H
CX = 0009H
DX = 0000H
SP = 0000H
BP = 0200H
SI = 0002H
DI = 0000H
DS = 2000H
ES = 0760H
SS = 2300H
CS = 0770H
IP = 0010H
标志位:NU UP EI PL NZ NA PO NC
(7) MOV AX, 1100[BX][SI]
源操作数为基址变址加偏移地址寻址方式
- (1100[BX][SI]) = (21202H) = 65B7H
 


(8) MOV AX, [BP+SI+04]
源操作数为基址变址加偏移地址寻址方式
- ([BP+SI+04]) = (20104H) = 0000H
 

实验报告
总结操作步骤及各种寻址方式,记录调试结果。
任务一运行结果
使用r+命令给寄存器赋值:
使用f命令给20100到20103赋值:
使用f命令给21200到21203赋值:
使用f命令给23204到23205赋值:
- ![未提供具体图片链接,请自行补充]
 
任务二
使用a命令给代码段添加汇编代码,并使用u命令反汇编代码以检查其正确性。
使用t命令单步运行指令:




