附加1用DEBUG验证程序段

上传人:痛*** 文档编号:176618127 上传时间:2022-12-23 格式:PPT 页数:25 大小:424.03KB
返回 下载 相关 举报
附加1用DEBUG验证程序段_第1页
第1页 / 共25页
附加1用DEBUG验证程序段_第2页
第2页 / 共25页
附加1用DEBUG验证程序段_第3页
第3页 / 共25页
点击查看更多>>
资源描述
通常汇编教学中,汇编程序结构会在指令系统后通常汇编教学中,汇编程序结构会在指令系统后面讲,学生在学习指令系统时由于没有讲汇编程面讲,学生在学习指令系统时由于没有讲汇编程序结构而无法编写汇编程序来加深对汇编指令的序结构而无法编写汇编程序来加深对汇编指令的理解,因此,在这里我们通过理解,因此,在这里我们通过2个例子,介绍使个例子,介绍使用用DEBUG调试工具编写程序段来学习汇编指令调试工具编写程序段来学习汇编指令。有关有关DEBUG的常用命令的用法请参看的常用命令的用法请参看现代微现代微机原理与接口技术机原理与接口技术教材的附录教材的附录A.2.4题目:非压缩题目:非压缩BCD码的减法运算,做码的减法运算,做68-9mov ax,0608hmov bl,09hsub al,blaas运行运行debug首先用首先用A命令输入程序命令输入程序Debug中只使用中只使用16进制数进制数,且无需加,且无需加H后缀后缀直接用回车退出汇编编辑状态直接用回车退出汇编编辑状态使用使用T命令跟踪执行命令跟踪执行第一个第一个T命令要带上程序首地址命令要带上程序首地址后面的后面的T命令无需地址命令无需地址标志位标志位调试完后用调试完后用Q命令退出命令退出DEBUG。DEBUG命令参见教材命令参见教材2附录附录D。下面给出。下面给出DEBUG中标中标志位状态符号的含义。志位状态符号的含义。标志标志为为1时时为为0时时溢出溢出OF方向方向DF中断中断IF符号符号SF零位零位ZF辅助辅助AF奇偶奇偶PF进位进位CFOVDNEINGZRACPECYNVUPDIPLNZNAPONC再举一个有访存操作的例子再举一个有访存操作的例子 MOV SI,0050H ;(DS)=2000H MOV DI,0100H ;(ES)=3000H MOV CX,5 CLD 1)先用)先用A命令输入程序命令输入程序2)用)用R命令修改命令修改DS和和ES寄存器到约定值寄存器到约定值DS的原始值的原始值输入的修改值输入的修改值3)用)用D命令查看源数据区和目标数据区命令查看源数据区和目标数据区4)用)用E命令初始化源数据区后再用命令初始化源数据区后再用D命令检查源数据命令检查源数据区和目的数据区区和目的数据区5)单步跟踪执行程序)单步跟踪执行程序6)执行后检查源数据区和目标数据区)执行后检查源数据区和目标数据区注意,用注意,用A命令输入指令时,如果输入错误命令输入指令时,如果输入错误debug会立会立即指出错误和位置。地址不会变化,以便用户修正指即指出错误和位置。地址不会变化,以便用户修正指令。令。第一步编辑:第一步编辑:第二步汇编:第二步汇编:可以不输入,用回车回应可以不输入,用回车回应修改好后再汇编:修改好后再汇编:第三步连接并执行:第三步连接并执行:可以直接用回车回应可以直接用回车回应执行执行用用DEBUG调试程序:调试程序:1)用)用U命令查看程序和目标码及指令地址命令查看程序和目标码及指令地址2)用)用T命令单步跟踪,逐条执行看中间结果,命令单步跟踪,逐条执行看中间结果,DEBUG将显示每个寄存器以及各标志位的当前值将显示每个寄存器以及各标志位的当前值这是还未执行的下这是还未执行的下一条指令一条指令这是这是MOV BX,SI的执行结果的执行结果标志位标志位3)对于系统功能调用,可以用)对于系统功能调用,可以用G命令设置断点执行,命令设置断点执行,也可以用也可以用P命令跳过过程与系统功能服务程序。命令跳过过程与系统功能服务程序。设断点执行,断点设在设断点执行,断点设在INT 21H的后一句的后一句INT 21H输出的一个字符输出的一个字符注意:注意:DEBUG只支持只支持16位汇编调试,如果要编写位汇编调试,如果要编写32位汇编程序,需要用位汇编程序,需要用MASM 6.11汇编和连接,用汇编和连接,用CodeView软件查看执行代码。但软件查看执行代码。但MASM 6.11中带的中带的CodeView 4.01可以查看可以查看32位程序的执行代码,不能进位程序的执行代码,不能进行单步调试。要调试可以考虑使用行单步调试。要调试可以考虑使用SoftICE软件。软件。另外,另外,VC嵌入汇编可以支持嵌入汇编可以支持80486的所有指令,也支的所有指令,也支持持32位汇编。位汇编。建立源程序建立源程序asmsample.cpp将下列程序输入到将下列程序输入到asmsample.cpp中中#include int power2(int,int);void main(void)cout2的的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编译执行后看结果编译执行后看结果
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!