计算机组成原理与汇编语言实验指导书
指令也一样.
2. 执行debug-a后,如果有一行输入错误,如何更改这一行?
解: 假如在Debug下进行如下输入: -a
2129:0100movax,200 2129:0103movbx,200 2129:0106movcx,200 2129:0109
此时,发现movbx,200一句错误,应为mov bx,20,可以敲回车返回\状态,然后输入: -a 103
2129:0103movbx,20 如果多或者少若干行,不必重新输入,可以用M命令移动后面的程序来去掉或者增加程序空间。
3.在Debug下,如何显示BIOS的日期。 解:
-D FFFF:0006 L 8<按回车>
在作者的电脑上这里显示为 \作者的电脑显示如下: FFFF:0000 2/23/02.
相信你的电脑里也是用这种格式显示的。这里显示出来的是使用者BIOS的日期,有兴趣的话可以重新开机看看,注意开机时的显示。 4.
在你的电脑的COMMAND.COM文件里搜寻\这几个字符。 解:
注意,文件COMMAND.COM在各个电脑的存放位置可能不一样。 以下是作者做的:
32 2F-32 33 2F 30 30
00
C:\\WINDOWS\\system32>debug -n command.com -l
-s 0 l ffff 'IBM'
-s 0 l ffff 'COMMAND' 0B3A:005D 0B3A:0082 0B3A:06C2 0B3A:07E5 0B3A:080D 0B3A:20E0
- 1 -
计算机组成原理与汇编语言实验指导书
0B3A:210A
0B3A:22B8 0B3A:22E1 0B3A:234B 0B3A:23C7 0B3A:9E25 注意:
(1)搜寻是要区分大小写的。
(2)可以看到上面是没有找到\的, 可以试一试\, \PEC\, \,已经找到了COMMAND.。
(3)这种方法用在查找加密资料和已被删除的资料等方面时是十分有用的。 5.
在DEBUG下编写print.com程序,在计算机屏幕上输出‖ABC‖
解:如下
C:\\DOCUME~1\\WANGXI~1>debug -a mov dl,41 mov ah,02 int 21 mov dl,42 int 21 mov dl,43 int 21 int 20 0AF4:0110 -r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0AF4 ES=0AF4 SS=0AF4 CS=0AF4 IP=0100 NV UP EI PL NZ NA PO NC
0AF4:0100 B241 MOV DL,41 -r bx BX 0000 : -r cx CX 0000 :10
-n c:\\masm\\print.com -w
Writing 00010 bytes
- 2 -
计算机组成原理与汇编语言实验指导书
-q
C:\\DOCUME~1\\WANGXI~1>print.com
'print.com' is not recognized as an internal or external command, operable program or batch file. C:\\DOCUME~1\\WANGXI~1>cd \\ C:\\>cd masm C:\\masm>print.com ABC
C:\\masm>
思考:BX和CX中的数值为何分别设置为0和10呢? 6.
在Debug下查看print.com程序的内容并运行之。 解:
C:\\masm>debug -n print.com -l -u
0B3A:0100 B241 MOV DL,41 0B3A:0102 B402 MOV AH,02 0B3A:0104 CD21 INT 21 0B3A:0106 B242 MOV DL,42 0B3A:0108 CD21 INT 21 0B3A:010A B243 MOV DL,43 0B3A:010C CD21 INT 21 0B3A:010E CD20 INT 20 -r
AX=0000 BX=0000 CX=0010 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=0B3A ES=0B3A SS=0B3A CS=0B3A IP=0100 NV UP EI PL NZ NA PO NC
0B3A:0100 B241 MOV DL,41 -g ABC
Program terminated normally -
五、练习
1. 反复练习DEBUG的命令,熟练掌握只各命令的使用方法。
2. 用键盘,将DS:100H起八个内存地址单元置AAH,将DS:200H起八个内存单元置FFH。
3. 用键盘,将AX,BX,CX,DX及DS,ES清0。
4. 用A命令输入以下的程序,用单步命令T跟踪执行程序,并观察每一步的寄存
- 3 -
计算机组成原理与汇编语言实验指导书
器内容和标志位的变化情况,并填写地址分配和目标代码。 地址分配 目标代码 源程序 MOV AL,2
- 4 -
计算机组成原理与汇编语言实验指导书
PUSH BX MOV BL,AL DEC AL DEC AL DEC AL INC AL INC AL POP BX INT 20H
5. 通过以上程序的调试和观察,试用汇编指令编一个简单的程序,将AAH,BBH,CCH,DDH分别送AH,BH,CH,DH寄存器,用A命令输入,用T命令单步执行,观察每一步的结果是否与预计结果相同。
6. 对以下源程序进行调试,记录下每一条指令的目标代码,相应寄存器变化情况和程序的最终执行结果。 源程序:MOV AL,30
MOV BL,26 ADD AL,BL PUSH AX POP DX
MOV AH,02 INT 21 INT 20
7. 文件写盘操作:
(1)将实验4中的源程序用A命令写入CS:100起始的一片内存,再用U命令进行反汇编,可以看出这段程序所占的内存长度。
(2)用R命令使BX,CX中包含该文件的字节数,其中BX为高位,CX为低位。 (3)—N 盘名:文件名.扩展名
-W
则将该文件写入指定磁盘中。若要检查文件是否确实写入,可用下面的读盘操作。
8. 文件读盘操作:
—N 盘名:文件名.扩展名 —L
将文件读入CS:200起始的一片内存,再用U命令进行反汇编显示检查。 9. 用命令U查看8086/8088 CPU在开机后执行的第一条指令。
10. 用H命令检查下列各组16进制数加减结果并和你的手算结果比较:
(1)34H,22H
(2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH
- 0 -