ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:61.13KB ,
资源ID:12304195      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12304195.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第三讲汇编语言的调试.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第三讲汇编语言的调试.docx

1、第三讲汇编语言的调试第三讲 汇编语言的调试1教学目的:熟悉DEBUG中的各种命令,并能用DEBUG 命令调试和运行简单小程序。2教学要求:熟练掌握DEBUG中的各种常用命令;会用DEBUG 命令调试和运行简单小程序;了解DEBUG程序的一些小技巧。3教学重点:DEBUG中的各种常用命令;用DEBUG命令调试和运行简单小程序。4掌握难点:用DEBUG 命令运行简单小程序 5教学内容: 3.1 DEBUG 调试程序和基本命令3.1 Debug调试程序和常用命令集Debug 原意是杀虫子。这里指机器调试工具。DEBUG是为汇编语言设计的一种高效工具,它通过单步、设置断点等方式为汇编语言程序员提供了非

2、常有效的调试手段。虽然,现在好的软件越来越多了,但是有些情况下,我们用Debug就可既简单又快捷地解决一些复杂的问题!如在杀毒、加解密、系统等方面。1、DEBUG程序的调用在DOS的提示符下,可键入命令:C:DEBUG D:PATHFILENAME.EXTPARM1PARM2其中,文件名是被调试文件的名字。如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。在DEB

3、UG程序调入后,将出现提示符-,此时就可用DEBUG命令来调试程序。2、Debug常用命令集 名称 解释 格式 a (Assemble) 逐行汇编 a address c (Compare) 比较两内存块 c range address d (Dump) 内存16进制显示 d address或 d range e (Enter) 修改内存字节 e address list f (fin) 预置一段内存 f range list g (Go) 执行程序 g =addressaddress. h (Hexavithmetic) 制算术运算 h value value i (Input) 从指定端口

4、地址输入 i pataddress l (Load) 读盘 l address driver seetor m (Move) 内存块传送 m range address n (Name) 置文件名 n filespec filespec. o (Output) 从指定端口地址输出 o portadress byte q (Quit) 结束 qr (Register) 显示和修改寄存器 r register name s (Search) 查找字节串 s range list t (Trace) 跟踪执行 t =address value u (Unassemble) 反汇编 u address

5、 或range w (Write) 存盘 w addressdriver sector secnum ? 联机帮助 ?(1)显示存储单元的命令D(DUMP),格式为:-Daddress或-Drange例如,按指定范围显示存储单元内容的方法为:-d100 12018E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G.8.G.G.18E4:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37.;.h.M PQVW.718E4:0120 8B其中0100至0120是DEBUG显示的单元

6、内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。(2)修改存储单元内容的命令有两种。 输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为: -E address list 例如,-E DS:100 F3XYZ8D 其中F3,X,Y,Z和8D各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容。

7、若list均为十六进制数,则两数之间用空格隔开。如:-E 100 F4 56 45 34 32第二种格式则是采用逐个单元相继修改的方法。命令格式为: -E address 例如,-E DS:100 则可能显示为: 18E4:0100 89.- 如果需要把该单元的内容修改为78,则用户可以直接键入78,再按“空格”键可接着显示下一个单元的内容,如下:18E4:0100 89.78 1B.- 这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。 填写命令F(FILL),其格式为: -F range list 例如:-F 4BA:0100 105 F3XYZ8D 使04BA:01

8、000104单元包含指定的五个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。在DEBUG中提供了测试标志位的手段,它用符号表示标志位的值,下表说明每种标志位的符号表示: (DEBUG不提供TF的符号)表3-1 标志位的符号表示标 志 名标志为1标志为0OF 溢出(是否)DF 方向(减量增量IF 中断(允许关闭)SF 符号(负正)ZF 零(是否)AF 辅助进位(是否)PF 奇偶(偶奇)CF 进位(是否)OVDNEINGZRACPECYNVUPDIPLNZNAPONC(3)检查和修改寄存器内

9、容的命令R(register),它有三种格式如下: 显示CPU内所有寄存器内容和标志位状态,其格式为: -R 例如,-r AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC 18E4:0100 C70604023801 MOV WORD PTR 0204,0138 DS:0204=0000 显示和修改某个寄存器内容,其格式为: -R register name 例如,键入 -R AX 系统将响

10、应如下: AX F1F4 : 即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如: -R bx BX 0369 :059F 则把BX寄存器的内容修改为059F。 显示和修改标志位状态,命令格式为:-RF 系统将响应如:OV DN EI NG ZR AC PE CY- 此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如: OV DN EI NG ZR AC PE CY-PONZDINV 即可,可见键入的顺序可以是任意的,有无空格分开均可。(4)汇编命令A(Assemble),其格式为:-Aaddress 该命令允许键入汇编语言语句,并能把它们

11、汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数(5)反汇编命令U(Unassemble)有两种格式。 从指定地址开始,反汇编32个字节,其格式为: -Uaddress 例如: -u100 如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。 对指定范围内的存储单元进行反汇编,格式为: -Urange 例如: -u100 10c 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4

12、:010C C70606020202 MOV WORD PTR0208,0202(6)运行命令G,其格式为: -G=address1 address2 address3 其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。通常和A命令、U命令配合使用。(7)跟踪命令T(Trace),有两种格式: 逐条指令跟踪 -T=address 从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。 多条指令跟踪 -T =

13、addressvalue 从指定地址起执行n条指令后停下来,n由value指定。(8)命名命令N(Name),其格式为: -N filespecs filespecs 命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。filespecs的格式可以是: d:path filename.ext 例如, -N myprog -L 可把文件myprog装入存储器。(9)装入命令(Load),有两种功能。 把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:-Laddressdrive sector sector 装入指定

14、文件,其格式为: -Laddress 此命令装入已在CS:5CH中格式化了文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。 (10)写命令W(Write),有两种功能。 把数据写入磁盘的指定扇区。其格式为: -W address drive sector sector把数据写入指定的文件中。其格式为: -Waddress 此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定地址则数据从CS:0100开始。要写入文件的字节数应先放入BX和CX中。(11)退出DEBUG命令Q(Quit),其格式为: -Q 它退出DEBUG,返回DOS。本命

15、令并无存盘功能,如需存盘应先使用W命令。3.2 用DEBUG调试运行汇编程序1、在使用时,如何快速获得debug的使用帮助呢。-?2、显示BIOS的日期。D FFFF:0006 L 8 3、一位十六进制数的运算。-H 9 1 (加减两个十六进制的数, 9h+1h=Ah & 9h-1h=8h)结果是显示: 000A 00084、现在,我们不但要编写一个汇编程序,而且我们还要把它存盘。-A 100 MOV AH,02 MOV DL,41 INT 21 MOV DL,42 INT 21 MOV DL,43 INT 21 INT 20 (程序结束,退出DEBUG) (结束汇编命令输入,回到DEBUG命

16、令输入)-R BX :0000 (注意,只要BX = 0000, 文件的大小就小于 64 Kb.)-R CX (设置CX为Fh,这是程序的长度:16位):0010 (现在我们可以把这个16字节的程序写入硬盘了)-N -W -Q (退出DEBUG)C: DIR 这里将会报告这个文件的大小是16字节 (10h 字节).C: 会马上在屏幕上打印出ABC C:WINDOWSDEBUG-N PRINTABC.COM-L-U 100 L 1012A4:0100 B402 MOV AH,0212A4:0102 B241 MOV DL,4112A4:0104 CD21 INT 2112A4:0106 B242

17、 MOV DL,4212A4:0108 CD21 INT 2112A4:010A B243 MOV DL,4312A4:010C CD21 INT 2112A4:010E CD20 INT 20-RAX=0000 BX=0000 CX=0010 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=12A4 ES=12A4 SS=12A4 CS=12A4 IP=0100 NV UP EI PL NZ NA PO NC12A4:0100 B402 MOV AH,02-GABCProgram terminated normally3.3 DEBUG命令的综合使用实例(

18、略讲)接下来,我们一起学习Debug在各方面的运用吧!(在杀毒、加解密、系统.)1、用DEBUG破解CMOS口令经常由于忘记或不知口令而无法进入BIOS设置状态或无法进入系统,这时可采用下面的方法破解。应该注意的是,COMS密码分两种,一种是Setup密码,另一种是System密码。如果选择System,那么每次开机启动时都会提示您输入密码,如果密码不对,那么就无法使用计算机了,此密码的设置目的在于禁止外来者使用计算机;如果选择Setup,那么仅在进入CMOS设置时才提示您输入密码,此密码设置的目的在于禁止未授权用户设置BIOS。我们可根据不同的目的进行设置,一般来讲,设置了SYSTME密码,

19、那么安全性更高些,但同时如果忘记密码,其破解也就更复杂些,而设置了Setup密码则反之。用DEBUG向端口70h和71h发送一个数据,可以清除口令设置,具体操作如下:用软盘启动进入DOS下,执行Debug程序debug(回车)-o 70 2e (回车)-o 71 00 (回车)-o 70 2f (回车)-o 71 00 (回车)然后重新启动,就可进入CMOS进行修改了2)debugo 70 10(回车)o 71 10(回车)重新启动,电脑会提示CMOS设置出错,按DEL进入CMOS SETUP中发现所有的参 数全变成了缺省值,重新设好参数后,存盘退出BIOS设置。2、妙用DEBUG挑选显示器如

20、何直观地检验显示器的色彩是否纯正、黑白是否平衡和汇聚是否准确?虽然我们可以利用一些软件的帮助,如Nokia Monitor Test 1.0a。但是在购买时,却极少人会随身携带,这时只有凭用户的慧眼目测。其实,操作系统本身就自带了一个方便的工具,它就是DOS下的DEBUG。 开机后进入DOS模式(建议在DOS实模式下,不加载任何其它的系统和软件,不过在Windows 9X的DOS窗口模式中也能通过;如果用户用的是Windows Me或Windows XP,可以点击任务栏的“开始”,选择“运行”,键入“DEBUG”,然后点击“确定”),键入DEBUG,回车。出现DEBUG横线提示符,我们即可使用

21、“F”命令,直接对显示缓存进行操作,使显示器显示我们所需要的“图形”。具体操作命令如图表。debug操作命令一览表怎么样,都看到了吧,比彩电信号发生器提供的信号更纯、更全、更直观。大家通过对自己心仪的显示器的测试,尽量发现它的“不足之处”,尽可能地吹毛求疵,这样就可以多掌握一些向商家讨价还价的“砝码”。上面方法的作用是配合显像管的偏转线圈、色纯磁环、六级磁环等可调整部件,帮助用户调整和修复显像管的红、绿、蓝静汇聚,动汇聚,白、暗平衡,色纯等“面子”错误,让我们的彩显时刻展露“真我”色彩。3、硬盘逻辑锁巧解现象:在遭到某个黑客程序的袭击后,硬盘不能启动,甚至用光盘和软盘都启动不了,一启动就死机,

22、甚至做副盘都不行”。用DEBUG手工修复硬盘步骤如下:a:debug-a-xxxx:100 mov ax,0201 读一个扇区的内容-xxxx:103 mov bx,500 设置一个缓存地址-xxxx:106 mov cx,0001 设置第一个硬盘的硬盘指针-xxxx:109 mov dx,0080 读零磁头-xxxx:10c int 13 硬盘中断 -xxxx:10e int 20-xxxx:0110 退出程序返回到指示符-g 运行-d500 查看运行后500地址的内容 这时候会发现地址6be开始的内容是硬盘分区的信息,发现此硬盘的扩展分区指向自己,这就使DOS或WINDOWS启动时查找硬盘

23、逻辑盘进去死循环,在DEBUG指示符下用E命令修改内存数据 具体如下:E6BExx.0 xx.0 xx.0.55 AA 55 AA表示硬盘有效的标记,不要修改,xx0表示把以前的数据“xx”改成0再用硬盘中断13把修改好的数据写入硬盘就可以了,具体如下:A:debuga 100 表示修改100地址的汇编指令-xxxx:100 mov ax,0301 写硬盘一个扇区-xxxx: 这里直接按回车-g 运行-q 退出然后运行 FDISK/MBR(重置硬盘引导扇区的引导程序),再重新启动电脑就行了。怎么样?用这种方法处理够简单的吧?而且这种方法还有一个好处就是可以保住盘上的数据!如果你不需要保数据的话,还有更加简单的处理方法。课后总结:本部分为调试汇编语言的基础,必须理解和熟悉。本部分要求灵活应用,不要死记硬背。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1