实验一掌握DEBUG的基本命令及其功能.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验一 掌握DEBUG 基本命令及其功能 【上篇】 查看CPU和 掌握win7 win8 使用DEBUG功能. 预备知识:Debug的使用 (1) 什么是Debug? Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。 (2) 我们用到的Debug功能 用Debug的R命令查看、改变CPU寄存器的内容; 用Debug的D命令查看内存中的内容; 用Debug的E命令改写内存中的内容; 用Debug的U命令将内存中的机器指令翻译成汇编指令; 用Debug的T命令执行一条机器指令; 用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。 (3) 进入Debug Debug是在DOS方式下使用的程序。我们在进入Debug前,应先进入到DOS方式。用以下方式可以进入DOS: ① 重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。 ② 在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。 三.实验任务 解决方案 从网上下载Dosboxdebug.exe(文件中有)。 debug.exe放在D:根目录然后安装,安装完成以后,点击快捷方式进入Dos界面: 3.输入mount c d:\ 接着输入c: Dosbox 5.接着,你就可以使用Debug: debug 6.备注:debug.exe放在D:根目录下,你也可以把debug.exe放在任何一个文件夹下面。其中这个文件夹就是mount c d:所对应的。一(1) 使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变化。(逐条执行,每条指令执行结果截图) 汇编指令 b8 20 4e mov ax,4E20H 05 16 14 add ax,1416H bb 00 20 mov bx,2000H 01 d8 add ax,bx 89 c3 mov bx,ax 01 d8 add ax,bx b8 1a 00 mov ax,001AH bb 26 00 mov bx,0026H 00 d8 add al,bl 00 dc add ah,bl 00 c7 add bh,al b4 00 mov ah,0 00 d8 add al,bl 04 9c add al,9CH 提示: 可用E命令和A命令以两种方式将指令写入内存。注意用T命令执行时,CS:IP的指向。 (2) 将下面3条指令写入从2000:0开始的内存单元中,利用这3条指令计算2的8次方。 mov ax,1 add ax,ax jmp 2000:0003 (3) 查看内存中的内容 PC机主板上的ROM中写有一个生产日期,在内存FFF00H~FFFFFH的某几个单元中,请找到这个生产日期并试图改变它。(内存ffff:0005~ffff:000C(共8个字节单元中)处) 无法改变,修改之后内容并没有变。 【下篇】用机器指令和汇编指令编程 一.实验内容 1. 预备知识:Debug命令的补充 (1) 在D命令中使用段寄存器 格式:“d 段寄存器:偏移地址”,以段寄存器中的数据为段地址SA,列出从SA:偏移地址开始的内存区间中的数据。以下是4个例子: ① -r ds :1000 -d ds:0 ;查看从1000:0开始的内存区间中的内容 ② -r ds :1000 -d ds:10 18 ;查看1000:10~1000:18中的内容 ③ -d cs:0 ;查看当前代码段中的指令代码 ④ -d ss:0 ;查看当前栈段中的内容 (2) 在E、A、U命令中使用段寄存器 在E、A、U这些可以带有内存单元地址的命令中,也可以同D命令一样,用段寄存器表示内存单元的段地址。以下是3个例子: ① -r ds :1000 -e ds:0 11 22 33 44 55 66 ;在从1000:0开始的内存区间中写入数据 ② -u cs:0 ;以汇编指令的形式,显示当前代码段中的代码,0代码的偏移地址 ③ -r ds :1000 -a d

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档