PC微机原理实验
微型计算机原理与应用
实验指导书
上 海 大 学 通 信 学 院
PC微机原理实验一
目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的
功能。
要求:在PC机上完成下列程序的调试运行,并写出运行结果。
1.DEBUG的基本操作:(详细内容请参阅教材“4.5程序的调试,P173”和“附录F调试程序DEUBG的使用,P499”)
(1) 从WINDOWS进入DOS之后,输入命令启动DEBUG:
C:>DEBUG 回车
(2) 输入R命令,查看和记录CPU个寄存器的内容:
-R回车
看到什么?
(3) 输入A命令,汇编下面的字符“WINDOWS”显示程序:
-A 100
MOVAH,2
MOVDL, 57 ;57H 是“W”的ASCII码
INT21;INT 21是DOS 功能调用,AH=2代表2号功能
MOVDL, 49
INT 21
MOVDL, 4E
INT 21
MOVDL, 44
INT 21
MOVDL, 4F
INT 21
MOVDL, 57
INT 21
MOVDL, 53
INT 21
INT3 ; 功能是产生一个断点,不要省略
(4) 输入U命令反汇编上面的程序:
-U100
问:这里100代表什么?
(5) 输入G命令连续运行上面的程序,记录运行结果:
-G=100
(6) 输入E命令把上面程序中的数据57,49,4E,44,4F,57,53依次分别改为57,
45,4C,43,4F,4D,45:
-E103 回车(以下同)
-E107
-E10B
-E10F
-E113
-E117
-E11B
(7) 输入D命令查看程序机器码的存放情况:
-D100 11E ;看从100开始到11E的机器码
(8) 输入G命令再连续运行程序,并记录运行结果:
-G=100
(9) 依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各
命令的运行结果:
-T=100 回车
-G=100106 回车
-G=10010A 回车
-G=10010E 回车
-G=10011E 回车
注意:
下面第2—第8段程序是7个实用的小程序,若不小心打错指令,可以这样修改:
例如:CS:0100B300MOVBL,0
0102 53PUSHBX
0103B220 LP1:MOVDL,20
要修改“PUSHBX”,因为这条指令的IP是0102,所以按以下操作:
-A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。
如果要查看0100以后的指令及相应的机器代码,可以
-U 0100 回车 ,能够看到CS:0100开始的指令及相应的机器代码。“-U ”是反汇编
若发现有误用,用“-A XXXX 回车”,重打这条指令即可
2.编制一个3字节压缩BCD加法源程序
若要实现123456H+456789H,根据低地址放低字节,高地址放高字节原则,请用E命令在DS:1000-1002单元正确存放被加数123456H,在DS:1010-1012单元正确存放加数456789H。
参考程序如下:
CS:0200BE0010MOVSI,1000
0203BF1010MOVDI,1010
0206BB2010MOVBX,1020
0209B103MOVCL,3
020BB500MOVCH,0
020DF8CLC
020E8A04MAD:MOVAL,[SI]
02101205ADCAL,[DI]
021227DAA
02138807MOV[BX],AL
021546INCSI
021647INCDI
021743INCBX
0218E2F4LOOPMAD(020E)
021AF4HLT
运行结果:
[1020H]=______ [1021H]=______ [1022H]=______ (SI)=______ (DI)=______ (BX)=_____
相加后结果是:_________________
F标志: O=______ S=______ Z=______ A=______ P=__