- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 9
第四部分 有关软件
软件一 调试程序DEBUG
汇编语言源程序经过编译、连接后生成可执行文件。当运行可执行文件时,避免不了出现错误的结果,如果直接查找错误就比较困难。操作系统自带的动态调试程序DEBUG是调试汇编语言的有力工具。
通过DEBUG程序的运行,可以显示或修改寄存器的内容。也可以显示或修改存储器的内容。可以单步执行,可以断点执行,可以连续执行。也可以对存储器的目标代码进行反汇编。通过这些操作,可以查看程序的运行情况和查找错误。
DEBUG的调用:
DEBUG的调用格式:
DEBUG的调用格式有两种:
DEBUG?
DEBUG文件标识符?
在DEBUG成功的调入内存后,将出现提示符“-”,说明系统是在DEBUG程序
管理之下。DEBUG所属的命令,只有在出现DEBUG提示符后才能有效。
第一种方法调入后,则DEBUG程序或者与正在内存中的内容打交道,或者可
以通过NAME和LOAD命令从指定的盘上读入被调试的程序。
第二种方法,则由OS把DEBUG程序调入内存后,DEBUG又直接将“文件标识符”所指的可执行文件调入内存中(对于.EXE文件,DEBUG把它装入到最低可用的区段中,并从100H开始装入。对于不同的机器,或同一机器的不同的环境,其段地址是不同的)。
寄存器的初始化:
进入DEBUG后,各个寄存器和标志位均被初始化。其值可以用寄存器查看命
令查看。比如下图:
标志寄存器:
显示8086CPU中九个标志位中8个标志位的状态。
标 志
置位(SET)
复位(CLEAR)
溢出Overflow
OV
NV
方向Direction
DN
UP
中断Interrupt
EI
DI
符号Sign
NG
PL
零Zero
ZR
NZ
辅助进位 Auxiliary Carry
AC
NA
奇偶Parity
PE
PO
进位Carry
CY
NC
DEBUG命令一览表:
关于DEBUG程序的更详细用法,可再进入DEBUG程序后输入“?”而获得。DEBUG的命令共有19条。
命 令
功 能
格 式
1汇编(Assemble)
汇编
A[address]
2比较(Compare)
比较存储器内容
C range address
3转储(Dump)
显示存储器内容
D[address] 或D[range]
4进入(Enter)
修改存储器内容
E address [list]
5填充(Fill)
填充存储器块
F range list
6执行(Go)
按选择的断点执行
G[=address][addresses]
7 Hex
16进制加减运算
H Value1 Value2
8输入(Input)
读/显示输入字节
I port address
9装载(Load)
装入文件或磁盘内容
L[address][drive][fistsector] [number]
10传送(Move)
传送存储块
M range address
11命名(Name)
定义文件和参数
N filespec [filespec…]
12输出(Output)
发送输出字节
O port address byte
13程序步(Proceed)
按程序段方式逐条跟踪
P[=address][ number]
14退出(Quit)
结束Debug程序
Q
15寄存器(Register)
显示寄存器/标志
R[Register name]
16检索(Search)
检索字符
S range list
17跟踪(Trace)
单步执行并显示
T[=address][value]
18反汇编(Unassemble)
对指令码反汇编
U[range]
19写(Write)
写文件或绝对扇区
W[address][drive][fistsector] [number]
三、常用DEBUG命令:
1、反汇编命令U:
用于将存储器中的指令码进行反汇编,翻译成较有意义的助记符形式,以帮助理解。显示它们的段地址、偏移地址、机器码和汇编语言程序。如图1.5所示。
一般常用以下三种格式:
U↙
U[address] ↙
U range↙
其中,address是反汇编的起始地址,由CS:IP或IP指定。range是反汇编的地址范围。
例1 -U↙:
从当前IP处开始,对连续约32字节内容反汇编。如对TEST.EXE,刚装入DEBUG时的IP=0000,则在输入U命令后有如下显示:
-U↙
13C2:000
文档评论(0)