实验一 用DEBUG熟悉指令功能与寻址方式.docVIP

实验一 用DEBUG熟悉指令功能与寻址方式.doc

  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的使用,能建立和运行汇编语言程序 掌握寻址方式 DEBUG的命令 DEBUG的命令都用单个字母表示, 其后可以跟一个或多个参数, 参数之间用空格或逗号分隔。 DEBUG的命令参数大多数是地址或地址范围, 其地址书写格式为: [段地址:]偏移地址 其中的段地址可以用段寄存器名表示, 也可以用一个十六进制数表示。 如: ES:100 43A5:200 地址范围的书写格式为: Ⅰ. [段地址:]起始偏移地址 终止偏移地址 Ⅱ. [段地址:]起始领衔地址 L长度 如: CS:100 10F和CS:100 L10所指的地址范围是一致的。 当输入的命令不正确时, DEBUG将在该行底下指出错误所在。 注意: 在DEBUG下, 输入的数据和显示的数据都是十六进制数,不用在数据后加“H” A 汇编与反汇编命令 1.汇编命令A 格式: A [地址] 功能:从键盘输入汇编程序, 并逐条地把汇编指令翻译成机器代码指令存入对应内存单元。说明: 如果不指定汇编地址, 则以CS:IP为地址。 例:0BB6:0000-0005写入三条指令。 2. 反汇编命令U 格式: U [地址]/[地址范围] 功能: 将指定地址范围内的机器代码翻译成汇编源程序指令显示出来, 并同时显示地址及代码。 注意: 反汇编时一定确认指令的起始地址, 否则得不到正确的结果。 例:反汇编看CS:0005-0011单元的指令。 B 显示与修改内存单元内容的命令 1. 显示内存单元内容命令D 格式1: D [地址] 格式2: D 地址范围 只写一个D,表示显示从当前地址单元开始的128个单元中的字节数据 说明: D命令在屏幕上显示的内容分为三部分, 左边是每一行存储单元的起始地址, 中间是各字节单元的内容, 右边是各单元内容对应的ASCII码字符( 不可显示的字符用.代替)。 指定要显示的单元的逻辑地址,即写出完整的段地址和偏移地址。 指定要显示数据区起始单元的地址和最后一个单元的地址。这种形式中,最后一个单元只能写偏移地址,不能写段地址。默认和第一单元同段。 程序运行时,只有一个当前数据段,所以可以用DS代替段地址的具体值;或者省略段地址部分,默认访问当前数据段,只需要指明偏移地址就可以。 2. 修改内存单元内容命令E 格式1: E 地址 内容表 说明: 内容表可以是以逗号或空格分隔的两位16进制数, 也可以是用单引号或双引号括起来的字符串, 还可以是二者的组合。 用数据表形式修改指定单元开始的多个单元值。前面我们看到了单元格0BB6:0000单元值为0B8H,0BB6:0001单元值为0B6H。现在用E命令将这两个单元格的值改为30H,31H。修改完成后用D命令查看。 将字符存放在指定存储器单元,可以用字符的ASCⅡ码形式,也可以用单引号括起来的字符形式。 例:将0000H和0001H单元改成字符‘A’‘a’ 字符串存放到存储单元中,可以依次放入每个字符的ASCⅡ码,也可以是单引号括起来的多个字符形式。 例:将‘ABCD’存放到0000H单元开始的连续4个单元中。 格式2: E 地址 说明: 可以先查看某个单元的值,然后根据需要选择是否修改,需要修改时再输入修改的值。在修改数据时可用以下键进行不同操作: 1)键入空格键。移到下一个单元。 2) 输入减号-。回到上一个单元。 3) 输入回车键, 结束内存单元的修改。 例:将0000H到0003H修改为41H,46H,43H,48H。查看知道000H和0002H单元格需要修改,另外两个不需要修改。 3. 填充内存命令F 格式: F 地址 范围 数据表 功能: 该命令将数据表的数据写入从指定起始地址开始的一定范围的主存区域中。如果数据个数超过指定的单元个数范围,则忽略多出的数据项;如果数据个数小于指定的单元个数单位,则重复使用这些数据,直到填满指定的范围区域。 例:将DS:0000开始的16个单元全部填充为数据十进制的10。因为DEBUG中默认进制为十六进制,所以数据表因为0AH。16个单元用十六进制表示为10H,注意个数面前要加“L”。 C 显示与修改寄存器内容的R命令 格式1: R 功能: 显示当前所有寄存器内容, 状态标志及将要执行的下一条指令的地址、代码和汇编指令形式。 格式2: R 寄存器名 功能: 显示并修改指定寄存器的内容。 例:将AX中的值修改为1234H。 格式3: RF 功能:修改标志寄存器的值。 屏幕上会显示当前寄存器的标志位情况,在‘-’后,输入要修改的标志位的符号即可。不修改的或者修改完成的按回车。 例:修改标志位使CF=1,DF=1,ZF=1,则输入CY,DN,ZR。输入的顺序可以任意。 D 运行和跟踪命

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档