预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共39页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理及应用 主讲:谢维成 http://xweicheng.ys168.com scxweicheng@yahoo.com.cn 1 调试程序DEBUG DEBUG.exe是DOS提供的一个调试汇编语言程 序的程序 每个版本的DOS都带有该程序。 DEBUG程序采用的是命令行方式 使用不方便,但实用性强. 是学习汇编语言程序、计算机硬件等课程的有效 工具. 其他调试程序: TurboDebugger(TD.exe) CodeView Softice 2 DEBUG主要命令一览 命令功能简介 R显示、修改寄存器内容 RF显示、修改PSW内容 A汇编指令 U反汇编 T单步、多步执行指令 P单步、多步执行指令 G连续执行指令 D显示内存内容 E修改内存内容 W将内存块写入文件 L将文件调入内存 I读入端口的内容 O将数据写入端口 Q退出,返回 DEBUGDOS3 DEBUG程序的具体作用: 1.查看/修改寄存器,内存单元的内容; 2.学习寻址方式和指令系统; 3.了解计算机取指令,执行指令的工作过程; 4.调试有问题的汇编语言程序。 4 注意:DEBUG下符号与标志的对应关系 《实验指导书》附录 标志名称10 溢出标志OFOVNV 方向标志DFDNUP 中断标志IFEIDI 符号标志SFNGPL 零标志ZFZRNZ 辅助标志AFACNA 奇偶标志PFPEPO 进位标志CFCYNC 5 课后可参照下列步骤做实验: D:\>DEBUGÝ;进入DEBUG -RÝ;查看当前各寄存器的内容 AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000 DS=1271ES=1271SS=1271CS=1271IP=0100 NVUPEIPLNZNAPONC 1271:0100B83412MOVAX,1234 -D0:0Ý;查看0:0~7FH内存块的内容 0000:00009E0FC90065047000-1600EB0765047000....e.p.....e.p. 0000:00106504700054FF00F0-587F00F0F5E700F0e.p.T...X....… 、、、、、、 -UFFFF:0Ý;反汇编FFFF:0处的指令 FFFF:0000CD19INT19 FFFF:0002E000LOOPNZ0004 、、、、、、6 -AÝ;汇编一条指令 1271:0100MOVAX,1234 1271:0103 -T=100Ý;执行该指令 AX=1234BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000 DS=1271ES=1271SS=1271CS=1271IP=0103 NVUPEIPLNZNAPONC 1271:0103E9C300JMP01C9 -RÝ;查看指令执行后结果 AX=1234BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000 DS=1271ES=1271SS=1271CS=1271IP=0103 NVUPEIPLNZNAPONC -QÝ;退出DEBUG D:\> 7 3.4.23.4.2算术运算指令算术运算指令 1.加法指令 2.减法指令 3.乘法指令 4.除法指令 8 (3)(3)加加11指令指令INCINC((单操作数指令)单操作数指令) 格式:INCreg INCreg/mem 例:INCAL INCBYTEPTR[BX+4] 本指令除CF外对其余标志均有影响。 (4)BCD码的加法十进制调正指令AAA和DAA AAA本指令对在AL中的由两个未组合的BCD码 相加后的结果进行调正,得到一个正确的未组 合的BCD码。 9 例1: MOVAL,0800001000 ADDAL,09+00001001 00010001 结果应为17,而计算机相加为11H,原因在 于运算过程中,如遇到低4位往高4位产生进位时 (此时AF=1)按逢十六进一的规则,但BCD码要 求逢十进一,因此只要产生进位就会丢掉一个6, 这就要进行加6调正。 10 实际上当低4位的结果>9(即A~F之间)时, 也应进行加6调正。 如上面的结果进行加6得: 00010001 +00000110 00010111 11 AAA指令的调正步骤: 如AL的低4位>9或AF=1,则: ①(AL)←(AL)+6,(AH)←(AH)+1,AF←1 ②(AL)←((AL)∧0FH) ③CF←AF 否则(AL)←((AL)∧0FH) 再来看前例,用如下程序段可得正确结果 MOVAL,08H ADDAL,09H AAA 12 例2:计算2