




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验1: 调试器DEBUG的使用 DEBUG程序是IBM PC 的DOS操作系统提供的一个通用工具。它向汇编语言程序设计者和系统管理员提供一个可控制的调试环境,监视和管理被调试程序的执行。使用DEBUG可以直接深入到机器系统内部,读写中央处理机各寄存器和内存单元,并可以访问接口和外设的寄存器。DEBUG的具体功能如下:l 读写、比较存储单元内容;l 在存储器之间、存储器和磁盘之间传送数据和程序;l把数据和字符串填入指定内存单元,并在指定范围内查找数据和字符串;l指定程序起址或断点,执行或分段执行程序;l显示寄存器内容和内存单元内容;l跟踪程序执行,显示处理器状态;l 汇编和反汇编程序。2.1 DEBUG的进入和退出进入DEBUG 如果是调试某程序文件,其格式为: DEBUG 程序名可以是.COM为扩展名,也可以是以.EXE为扩展名。“”表示其中为一个完整的参数项,“ ”表示括号内项为可选项。 如果要在DEBUG下编程,直接键入DEBUG即可,例如:C DEBUG-显示DEBUG提示符“-”,表明已进入DEBUG状态。 在“-”之后,可以发出DEBUG 命令。本书约定以后所有DEBUG 命令都是在DEBUG下发出的。退出DEBUG 用DEBUG的Q命令,格式为:-Q返回操作系统。2.2 程序汇编与反汇编命令汇编命令A与反汇编命令U是DEBUG下最常使用的命令。我们约定下面例题中蓝色字符由用户键入,黑色字符由计算机自动显示。汇编命令A格式:A功能:逐行汇编程序。主要用于小段程序的汇编和修改部分连续的目标代码。说明:使用A命令汇编程序,一般不许使用标号和伪指令,但MS-DOS的DEBUG允许使用DB和DW这两条伪指令。A命令可用按Ctrl+C键退出。例2-1:-A 1001141:0100 MOV DL,411141:0102 MOV AH,21141:0104 INT 211141:0106 INT 201141:0108 C- ;即按CTR和C键退出汇编命令A反汇编命令U格式:U功能:对指定地址范围内的二进制代码进行反汇编,常用于分析目标代码意义。说明:项缺省时,反汇编起始地址由当前指令指针寄存器IP值决定。例2-2:例2-1程序反汇编如下:-U 100 1061141:0100 B241 MOV DL,411141:0102 B402 MOV AH,021141:0104 CD21 INT 211141:0106 CD20 INT 20- 其中地址范围为100到106。2.3 管理程序执行命令在DEBUG下有3种执行程序的方法:完整执行程序 、分段执行程序和单步执行程序。较新版本的DEBUG还提供了子程序跳跃执行命令。执行程序命令G格式:G=功能:完整或分段执行程序。说明:如果G命令不带参数,则从头到尾执行程序;如果有断点,则执行到断点地址时暂停并显示当前各寄存器状态。其中断点最多允许设置10个。程序正常时显示:Program terminated normally。例2-3ADEBUG-A127B:0100 MOV AX,5127B:0103 MOV BX,6127B:0106 ADD AX,BX127B:0108 INT 20H127B:010A C -GProgram terminated normally-单步执行命令T 格式:T 功能:逐条跟踪执行程序指令。 说明:每条指令执行后都将显示各寄存器当前值。例2-4:说明例2-3程序的单步执行:-TAX=0005 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=127B ES=127B SS=127B CS=127B IP=0103 NV UP EI PL NZ NA PO NC 127B:0103 BB0600 MOVBX,0006 -TAX=0005 BX=0006 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=127B ES=127B SS=127B CS=127B IP=0106 NV UP EI PL NZ NA PO NC 127B:0106 01D8 ADD AX,BX -TAX=000B BX=0006 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=127B ES=127B SS=127B CS=127B IP=0108 NV UP EI PL NZ NA PO NC 127B:0108 CD20 INT 20 -TAX=000B BX=0006 CX=0000 DX=0000 SP=FFE8 BP=0000 SI=0000 DI=0000 DS=127B ES=127B SS=127B CS=00C9 IP=0FA8 NV UP DI PL NZ NA PO NC 00C9:0FA8 90 NOP 访问寄存器命令R格式:R功能:显示或修改寄存器内容。说明:当R命令后不带参数时,显示各寄存器的内容,否则修改指定寄存器的内容。在显示寄存器的内容时,首先显示13个16位寄存器的内容,随后是标志寄存器的内容,最后一行是下一条要执行的指令地址及指令内容。例2-5:显示所有寄存器的内容-RAX=0140 BX=2400 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=08F1ES=08F1 SS=08F1 CS=08F1 IP=0104 NV UP DI PL NA PO NC 08F1:0104 EB0A JMP 0110在显示命令执行时,最后显示的是标志寄存器的内容,其意义见表2-1。 表2-1 标志意义标志位名字 置位 复位溢出(是/不是) OV NV方向(增加/减少) DN UP中断(允许/禁止) EI DI符号(正号/负号) NG PL零标志(是/不是) ZR NZ辅助进位(是/不是) AC NA奇偶校验(偶校验/奇校验) PE PO进位(是/不是) CY NC2.4内存单元访问命令 DEBUG中的数据在内存中,数据以二进制形式存在,但DEBUG采用十六进制压缩表示内存数据。1位十六进制数字代4位二进制数。小于10的数字与十进制数字相同,大于等于10到15的数字用字母A到F表示。地址十六进制数据ASCII码字符127E:0200 0A C0 74 09 56 57 E8 84-21 5F 5E 73 0A B9 04 01 .t.VW.!_s. 127E:0210 FC 56 57 F3 A4 5F 5E C3-50 56 33 C9 33 DB AC E8 .VW._.PV3.3. 127E:0220 C3 23 74 19 3C 0D 74 15-F6 C7 20 75 06 3A 06 14 .#t.t. u.:. 127E:0230 D4 74 0A 41 3C 22 75 E6-80 F7 20 EB E1 5E 58 C3 .t.Au. .X. 内存单元访问命令包括:显示内存单元内容命令(D),向内存单元输入数据命令(E)和在指定内存区域填充数据命令(F)。输入数据命令(E)格式:E功能:逐个修改指定单元内容、或用字符串替代指定连续单元内容。说明:字符串可以是以单引号括起来的字母、数字或一系列用空格分开的十六进制字节。例2-6:修改内存单元从112开始的内容为“END OF PROGRAM”。-E 112END OF PROGRAM例2-7:逐个单元向彩显缓冲区输入数据,彩显缓冲区内存段地址为B800H,其结果立即在屏幕上显示出来。下面的命令在屏幕上显示3个白底黑字闪烁的大写A。-E b800:70B800:0070 30.41 07.f0 30.41 07.f0 30.41 07.f0B800:0078 20.注意:点前为原来的内容,点后为键入数据,41是A的ASCII码,f0表示显示属性(白底黑字闪烁)。每输入一个字节按空格键到下一内存单元。显示内存内容命令(D)格式:D功能:显示地址范围内的内存数据,包括十六进制数及其对应ASCII码。例2-8: 显示内存单元112到120的内容“END OF PROGRAM”.-D112 11F127B:0110 45 4E 44 20 4F 46-20 50 52 4F 47 52 41 4D END OF PROGRAM127B:0120 57 BF E7 E3 8B DF 06 0E-07 32 D2 EB 92 8A E0 80 W.2.又如命令:-D ds:0 ;显示数据段偏移地址0开始的内容填充内存单元命令(F)格式:F功能:在指定地址范围内存入指定数据。例2-9:结合使用R命令和F命令在彩显缓冲区内写入一串大写的A(ASCII码值41H)。-R DS ;修改DS指向彩显缓冲区B800HDS 0000 :B800-F 0000 0070 41 ;在0到70单元内填满“A”。 2.5读写磁盘命令读写盘有两种执行方式,一种按扇区读写,直接使用读写命令即可;一种是按文件名读写。后一种方法首先要指定文件名,再发出读写命令。读盘命令L格式:L功能:将指定盘文件或盘区内容输入内存单元。说明:项为装入内存单元地址,其余项与W命令说明类似。例如:从B盘读数据装入开始地址为4BA:100的内存中。从相对扇区0FH(15)开始。共有6DH(109)个连续扇区的内容被读入。-L 4BA:100 1 0F 6D例2-10:先读入文件SHOW.COM再反汇编检查程序。CDEBUG -N SHOW.COM-L -U 1156:0100 B241 MOV DL,411156:0102 B402 MOV AH,021156:0104 CD21 INT 211156:0106 CD20 INT 20文件名指定读写命令格式:N功能:为读写磁盘文件定义文件名。说明:可以指定多个文件名。 例2-11:-N FILE.COM ;指定命令文件FILE.COM写盘命令W格式:W功能:向指定盘区或盘文件中写指定内存单元内容。说明:项指示写内容在内存单元中的起始地址,项为0表示A盘,为1表示B盘;相对扇区号是写扇区的第一个扇区号,扇区数为写的扇区个数。例2-12:把内存单元01FDH开始的数据写到B盘上3AH相对扇区开始的5个扇区中。-W 1FD 1 3A 5若写文件,则先用N命令给出文件名,再用R命令把文件长度送到寄存器BX和CX中,再发出W命令。例2-13:把下面程序以SHOW.COM为文件名存入盘中.CDEBUG-A1141:0100 MOV DL,411141:0102 MOV AH,21141:0104 INT 211141:0106 INT 201141:0108 C-N SHOW.COM-R BXBX 0000:-R CXCX 0000:8-WWriting 0008 bytes-2.6访问输入输出端口命令这类命令用于访问操作系统下允许读写的端口寄存器单元。输入命令I格式:I功能:输入指定端口数据并显示。例2-47:由3F8H口输入数据。-I 3F8输出命令O格式:O功能:将字节数据输出到指定端口。例2-48:把07H送到端口3BCH。-O 3BC 72.7其它命令除以上常用命令外,DEBUG还提供内存数据比较命令C,内存数据查找命令S,内存数据移动命令M和十六进制运算命令H。其使用方法见表2-2。 表2-2列出了DEBUG的全部命令,包括命令功能和使用格式以及命令式的英文全称。 表2-2 DEBUG的命令及其功能格式总表 命 令 极 其 功 能 格 式A(ssemble)对语句进行汇编AC(ompare) 比较内存内容CD(ump) 显示内存内容 D或E(nter) 修改内存内容EF(ill) 填充内存内容FG(o) 运行一个程序或程序段G=H(exarithmetic) 十六进制的加减法运算HI(nput) 读/显示输入字节I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年秋季初级经济师考试 经济基础知识押题冲刺训练试卷
- 现代婚姻法律知识培训内容课件
- 广西钟山中学2026届高三化学第一学期期末综合测试试题含解析
- 兖州中考题目及答案大全
- 烟台教招必背题目及答案
- 民法典婚姻培训课件
- 无人机产业链全面分析及未来发展
- 玉米速写课件
- 2026届河南省开封十中化学高二第一学期期中经典模拟试题含解析
- 2025年度绿色建筑认证生态办公场地租赁合同(绿色装修标准)
- 离网系统初步方案
- 无人机驾驶员理论培训教材
- 24000 吨-年废旧磷酸铁锂电池回收 利用项目环境影响报告书
- 《新能源乘用车二手车鉴定评估技术规范 第1部分:纯电动》
- 登革热诊疗方案(2024年版)
- 《广东省花生全程机械化栽培技术规程》
- 班组交接班制度模版(2篇)
- 护理老年科小讲课
- 《电子收费系统E》课件
- 外科微创手术管理制度
- 2024年全国《考评员》专业技能鉴定考试题库与答案
评论
0/150
提交评论