附加1用DEBUG验证程序段.ppt

上传人:本田雅阁 文档编号:2579670 上传时间:2019-04-12 格式:PPT 页数:25 大小:424.01KB
返回 下载 相关 举报
附加1用DEBUG验证程序段.ppt_第1页
第1页 / 共25页
附加1用DEBUG验证程序段.ppt_第2页
第2页 / 共25页
附加1用DEBUG验证程序段.ppt_第3页
第3页 / 共25页
附加1用DEBUG验证程序段.ppt_第4页
第4页 / 共25页
附加1用DEBUG验证程序段.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《附加1用DEBUG验证程序段.ppt》由会员分享,可在线阅读,更多相关《附加1用DEBUG验证程序段.ppt(25页珍藏版)》请在三一文库上搜索。

1、附加1 用DEBUG验证程序段,通常汇编教学中,汇编程序结构会在指令系统后面讲,学生在学习指令系统时由于没有讲汇编程序结构而无法编写汇编程序来加深对汇编指令的理解,因此,在这里我们通过2个例子,介绍使用DEBUG调试工具编写程序段来学习汇编指令。 有关DEBUG的常用命令的用法请参看现代微机原理与接口技术教材的附录A.2.4,题目:非压缩BCD码的减法运算,做68-9,mov ax, 0608h mov bl, 09h sub al, bl aas,运行debug,首先用A命令输入程序,Debug中只使用16进制数,且无需加H后缀,直接用回车退出汇编编辑状态,使用T命令跟踪执行,第一个T命令要

2、带上程序首地址,后面的T命令无需地址,标志位,当前指令执行后的各寄存器的结果,这是还未执行的下一条指令的反汇编,这是还未执行的下一条指令的地址和指令码,调试完后用Q命令退出DEBUG。 DEBUG命令参见教材2附录D。下面给出DEBUG中标志位状态符号的含义。,再举一个有访存操作的例子,MOV SI, 0050H ; (DS)=2000H MOV DI, 0100H ; (ES)=3000H MOV CX, 5 CLD REP MOVSB,1)先用A命令输入程序,2)用R命令修改DS和ES寄存器到约定值,DS的原始值,输入的修改值,3)用D命令查看源数据区和目标数据区,4)用E命令初始化源数据

3、区后再用D命令检查源数据区和目的数据区,5)单步跟踪执行程序,6)执行后检查源数据区和目标数据区,注意,用A命令输入指令时,如果输入错误debug会立即指出错误和位置。地址不会变化,以便用户修正指令。,附加2 汇编语言上机过程 用MASM 5.0上机过程,第一步编辑:,第二步汇编:,可以不输入,用回车回应,修改好后再汇编:,第三步连接并执行:,用DEBUG调试程序:,段值 偏移 指令码 反汇编的源码,1)用U命令查看程序和目标码及指令地址,2)用T命令单步跟踪,逐条执行看中间结果,DEBUG将显示每个寄存器以及各标志位的当前值,3)对于系统功能调用,可以用G命令设置断点执行,也可以用P命令跳过

4、过程与系统功能服务程序。,设断点执行,断点设在INT 21H的后一句,INT 21H输出的一个字符,注意:DEBUG只支持16位汇编调试,如果要编写32位汇编程序,需要用MASM 6.11汇编和连接,用CodeView软件查看执行代码。但MASM 6.11中带的CodeView 4.01可以查看32位程序的执行代码,不能进行单步调试。要调试可以考虑使用SoftICE软件。 另外,VC嵌入汇编可以支持80486的所有指令,也支持32位汇编。,用VC6.0实现C+中嵌入汇编,建立源程序asmsample.cpp,将下列程序输入到asmsample.cpp中,#include int power2(int, int); void main(void) cout“2的6次方乘5等于:t“; coutpower2(5,6)endl; int power2(int num, int power) _asm mov eax, num ; 取第一个参数 mov ecx, power ; 取第二个参数 shl eax, cl ; 计算EAX=EAX(2CL) / 返回值存于EAX ,编译执行后看结果,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1