实验一DEBUG和寻址方式的使用.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验一DEBUG和寻址方式的使用

什么是DEBUG? DEBUG是DOS提供的专门用于汇编语言软件,它给出了一些命令,可直接检查、修改寄存器和内存的值,可以调试、跟踪和执行程序段,使我们进一步熟悉指令,了解CPU的内部环境。 DEBUG程序的启动: 在DOS的提示符下直接键入命令 C:\>DEBUG ↙ 进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。 声明:在DEBUG状态下输入的数字均为十六进制数,如要输入其他进制数,在输入的数字后加以说明。如十进制数:13D。 在WINDOWS环境下,用鼠标点击开始→所有程序 →附件 →提示符命令 或:开始→运行→打开栏→输入:CMD→ 确定 出现: C:\ Document and Setting \ Administrator>_ >CD C:\ ↙ C:\>debug ↙ 进入DEBUG调试程序后,会出现DEBUG提示符“-”,此时就可以使用DEBUG命令了。 在WINDOWS环境下Dos窗口大小的切换 用 Alt + ↙ 1、R命令 ( Register ) 功能:查看和修改寄存器的值。 查看格式:R↙ 在R命令后面直接打入回车,显示当前CPU内部所有寄存器的值、标志位状态及将要执行的下一条指令。 若要修改某个寄存器的值,直接在R后面输入该寄存器的名,然后回车,这时会显示该寄存器的当前值,新值直接输入即可。 修改格式:-R 寄存器名↙ -R AX↙ AX 0000 ( 0000 当前值 ) :1234 ↙ ( 1234 新值 ) AX=1020H BX=5060H CX=A0B0H DX=E0F0H SP=FFFFH BP=0200H SI=3040H DI=7080H DS=2000H ES=0300H SS=0400H CS=0100H 2、D命令 ( Dump ) 功能:显示存储器单元的值。 格式:D 段寄存器名:起始地址 在使用D命令之前,我们首先要明白,内存已经被我们划分为4个段,即:代码段CS、数据段DS、堆栈段SS、附加段ES。 做题时要明确显示或修改的是哪个段的内容。 查看数据段00H单元开始的后面128个字节内存单元的值。(16字节* 8行=128字节) -D DS:00 ↙ 1、查看代码段00单元以后的128个内存单元的值 -D CS:00↙ 2、查看堆栈段 100单元以后的10个内存单元的值 -D SS:100 109 ↙ 显示结果由三部分组成: 1、左边是逻辑地址 即:段地址+偏移地址; 2、中间是内存单元存放的数据(16进制数); 3、右边是内存单元的ASCII码的对应值。 如: 2000:0000 31 32 41 42 61 62……1 2 A B a b ↑ ↑ ↑ 逻辑地址 十六进制数字 对应ASCII码 即:1的ASCII码是31H a的ASCII码是61H A的ASCII码是41H 3、E命令 ( Enter ) 功能:修改存储单元的值。 格式:E 段寄存器名:起始地址 如:要修改数据段00H - 05H 这6个单元的值。 -E DS:00 ↙ 这时会显示数据段00单元的当前值,若要修改直接输入新值,要继续修改下个单元的值,按空格键,继续输入新值,结束修改按回车键。 修改数据段:00H - 05H单元的值为 31 32 41 05 61 62 查看被修改后数据段6个内存单元的值 -D DS:00 ↙ 2000:0000 31 32 41 05 61 62……1 2 A . a b 注:内存单元值与ASCII码无对应关系的用点“ .”来表示。“ .”表示不可显示的ASCII码。 双字节数在内存中的存放 先存放低位 再存放高位。 例: ( 2000H:0100H )= 4567H 即数据段:100H = 67H 101H = 45H 操作步骤: –E DS :100 ↙ 2000:0100 67 45 完成实验内容第二部分内容。 修改不同段内存单元的值。 数据段( DS ): ( 2000H:0100H )= 4567H ( 2000H:5060H )= DEF3H ( 2000H:C110H )= ACD6H ( 2000H:80D0H )= 6789H 附加段( ES ) ( 0300H:5060H )= 1234H 堆栈段( SS ) ( 0400H:0200H )= 4321H 4、A命令( Assemble ) 功能:将汇编语句转换成机器码存放到代码段。 格式:A 段寄存器名:起始地址 注:转换的机器码一般都

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档