汇编程序设计基础介绍.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
汇编程序设计基础介绍

汇编程序设计基础 标 题: “没有风”的汇编实验报告专题(更新至10) 作 者: 没有风 时 间: 2007-10-23,09:15 链 接: /showthread.php?t=53710北极星2003?注:?把多个实验报告合为一个专题 实验1:1楼 实验2:10/11楼 实验3:无 实验4:18楼 实验5:23/24楼 实验6:29楼 实验7:34楼 实验8:40楼 实验9:42楼 ///////////////////////////////////////////////////////////////////////////////////////////实验1??查看CPU和内存,用机器指令和汇编指令编程 1.预备知识:DEBUG的使用 ???在以后所有的实验中,都将用到DEBUG程序,首先学习一下它的用法。 (1)什么是DEBUG ????DEBUG是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容,内存的情况和在机器码跟踪程序的运行。 (2)我们用到的DEBUG功能 ??用DEBUG的R命令查看、改变CPU寄存器的内容: ??用DEBUG的D命令查看内存中的内容: ??用DEBUG的E命令改写内存中的内容: ??用DEBUG的U命令将内存中的机器指令翻译成汇编指令: ??用DEBUG的T命令执行一条机器指令: ??用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令: DEBUG命令比较多,共有20多个,但上述6个命令是和汇编语言学习密切相关的。在以后的实验中,我们还会用到一个P命令。 (3)进入DEBUG ??DEBUG是在DOS方式下使用的程序。我们在进入DEBUG前,应先进入到DOS方式。用以下方式可以进入DOS: ??①重启计算机后,进入DOS方式,此时我们进入的是实模式的DOS。 ??②在WINDOWS中进入DOS方式,此时进入的是虚拟8086模式的DOS。 (4)用R命令查看、改变CPU寄存器的内容 ??我们已知道了AX、BX、CX、DX、SS、IP这6个寄存器,现在看一下它们之中的内容,如图2.1所示。其他寄存器SP、BP、SI、DI、DS、ES、SS、FLAGS(标志寄存器)??等先不予理会。 图2.31 使用R命令查看CPU中各个寄存器中的内容 注意CS和IP的值,CS=0CA2,IP=0100,也就是说,0CA2=0100处的指令为CPU当前要读取、执行的指令。在所有的寄存器的下方,DEBUG还列出了CS:IP所指向的内存单元处的所存放的机器码,并将它翻译为汇编指令。可以看到,CS:IP所指向的内存单元为0CA2:0100此处存放的机器码为027548,对应的汇编指令为ADD DH,[DI+48](这条指令的含义我们还不知道,先不必探究)。 DEBUG输出的右下角还有一个信息:“DS:0048=0”,以后会进行说明,这里同样不必深究。 还可以用R命令来改变寄存器中的内容,如图2.32所示。 图2.32??用R命令修改寄存器AX中的内容 若要修改一个寄存器中的值,比如AX中的值,可以用R命令后加寄存器名来进行,输入“R AX”后按ENTER键,将出现“:”作为输出提示,在后面输入要写入的数据后按ENTER键,即完成了对AX中内容的修改。若想查看一下修改的结果,可再用R命令查看,如图2.33所示。 图2.33 用R命令修改CS和IP中的内容 在图2.33中,一进入DEBUG,用R命令查看,CS:IP指向0B39:0100,此处存放的机器码为40,对应的汇编指令是INC?AX. 接着,用R命令将CS修改为FF00,则CS:IP指向FF00:0200,此处存储的机器码为51,对应的汇编指令是PUSH CX。 (5)用DEBUG的R命令查看内存中的内容 ??用DEBUG的D命令,可以查看内存中的内容,D命令的格式较多。我们这里只介绍在以本次实验中用到的格式。 ??如果想知道内存10000H处的内容,可以用“D 段地址:偏移地址”的格式来查看,如图2.34所示。 ??????图2.34??用D命令查看内存1000:0处的内容 ??使用“D 段地址:偏移地址”的格式,DEBUG将列出从指定的内存单元开始的128个内存单元的内容,图2.34中,在使用D 1000:0后,DEBUG列出了1000:0~1000:7F中的内容。 ??使用D命令,DEBUG将输出3部分内容,如图2.34所示。 ??中间是部分从指定地址开始的128个内存单元的内容,用十六进制的格式输出,每行的输出从16的整数倍的地址开始,最多输出16个单元的内容。从图中,我们可以知道,内存1000:0的内容是61:内存1000:10~1000:1F中的内容全部在第一

文档评论(0)

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

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

1亿VIP精品文档

相关文档