在DOS下的DEBUG命令的详细用法
在DOS下的DEBUG命令的详细用法 jae/jnb 指令 (控制指令-短转移) 大于或等于时转移 jb/jnae 指令 (控制指令-短转移) 小于转移 jbe/jna 指令 (控制指令-短转移) 小于或等 于转移 jg/jnle 指令(控制指令-短转移) 大于转移 jge/jnl 指令 (控制指令-短转移) 大于或等于转移 jl/jnge 指令 (控制指令-短转移) 小于转移 jle/jng 指令 (控制指令-短转移) 小于或等 于转移 je/jz 指令 (控制指令-短转移) 等于转移 jne/jnz 指令 (控制指令-短转移) 不等于转移 jc 指令 (控制指令-短转移) 有进位时转移 jnc 指令 (控制指令-短转移) 列进位时转移 jno 指令 (控制指令-短转移) 不溢出时转移 jnp/jpo 指令 (控制指令-短转移) 奇偶性为奇数时转移 jns 指令 (控制指令-短转移) 符号位为"0"转移 jo 指令 (控制指令-短转移) 溢出转移 jp/jpe 指令 (控制指令-短转移) 奇偶性为偶数时转移 js 指令 (控制指令-短转移) 符号位为"1"时转移 loop 指令 (循环控制指令-短转移) cx 不为0时循环 loope/loopz 指令 (循环控制指令-短转移) cx 不为0且标志 z=1 时循环 loopne/loopnz 指令 (循环控制指令-短转移) cx 不为0且标志 z=0 时循环 jcxz 指令 (循环控制指令-短转移) cx 为0时转移 ★int 指令 (中断指令) 中断指令(后详解) into 指令 (中断指令) 溢出中断 iret 指令 (中断指令) 中断返回 指令名 shl 指令(逻辑左移) sal 指令(算术左移) shr 指令(逻辑右移) sar 指令(算术右移) 寄存器,1 rol 指令(循环左移) 寄存器,cl ror 指令(循环右移) 存储器,1 rcl 指令(通过进位的循环左移)存储器,cl rcr 指令(通过进位的循环右移)(逻辑运算) not 指令(取反运算)寄存器求反 (逻辑运算)存储器求反 and 指令(与运算) (逻辑运算) 寄存器 and 寄存器 寄存器 寄存器 and 存储器 寄存器 存储器 and 寄存器 存储器 立即数 and 存储器 存储器 立即数 and 累加器 累加器 or 指令(或运算)(逻辑运算) 寄存器 or 寄存器 寄存器 寄存器 or 存储器 寄存器 第 3 页
在DOS下的DEBUG命令的详细用法 09H:在当前光标处写字符和属性 注:光标不下移 入口:AH=9,BH=页号,BL:AL=字符的颜色:字符的ASCII码,CX=重复次数 1 2 3 4 5 6 7 8 BL R G B I R G B 闪烁 字符底色 加亮 字符颜色 中断向量号表 中断号 解释 中断号 解释 0 除数为0错 19 引导装入程序 1 音步中断 1A 日时调用 2 不可屏蔽中断NMI 1B 键盘阻断时得到控制权 3 断电中断(CCH) 1C 时钟中断时得到控制权 4 溢出中断 1D 指向CRT初始参数表 5 屏幕打印中断 1E 指向盒带参数表 6-7 保留 1F 1KB图形模式 8 计时器中断(18.2秒) 20 结束DOS程序 9 键盘中断 21 DOS功能调用 A-D 保留 22 结束地址(建义用EXEC) E 软盘机中断 23 DOS Crtl-Break退出地址 F 保留 24 DOS致命错向量 10 屏幕I/O调用 25 DOS绝对磁盘读 11 设备检查调用 26 DOS绝对磁盘写 12 存储器检查调用 27 结束程序并驻留(建义用31h) 13 软盘机I/O调用 28-3F DOS保留 14 RS-233I/O调用 40-7F 未用 15 盒带机I/O调用 80-85 BASIC保留 16 键盘I/O调用 86-F0 BASIC解释程序用 17 打印机I/O调用 F1-FF 未用 18 ROM-BASIC入口 指令名详解 call 指令(过程调用)(控制指令-长转移) 详解: 段内直接调用 段内间接调用(寄存器) 段内间接调用(存储器) 段间直接调用 段间间接调用 指令名 jmp 指令(无条件转移指令)(控制指令-长转移) 详解: 段内直接跳转 短段内直接跳转 段内间接跳转(寄存器) 段内间接跳转(存储器) 段间直接跳转 段间间接跳转 指令名 ret 指令(过程返回)(控制指令-长转移) 详解: 段内返回 段内返回立即数加于sp 段间返回 段间返回立即数加于sp na/jnbe 指令(控制指令-短转移) 不小于或不等于时转移 第 2 页
在DOS下的DEBUG命令的详细用法 存储器 or 寄存器 存储器 立即数 or 存储器 存储器 立即数 or 累加器 累加器 test 指令(测试) (逻辑运算) 寄存器 寄存器 寄存器 存储器 累加器 test test test test test 寄存器 存储器 立即数 立即数 立即数
movs 指令(串传送)(字符串操作指令) 单个传送 重复传送 cmps 指令(串比较) (字符串操作指令) 单个比较 重复比较 scas 指令(串扫描)(字符串操作指令) 单个搜索 重复搜索 lods 指令(装入串) (字符串操作指令) 单个装载 重复装载 stos 指令(保存串) (字符串操作指令) 单个存储 重复存储 mov 指令(传送字或字节)(数据传送命令) 寄存器与寄存器间传送 存储器与寄存器间传送 立即数传送给存储器 立即数传送给寄存器 存储器传送给累加器 累加器传送存储器 寄存器传送给段寄存器 存储器传送给段寄存器 段寄存器传送给寄存器 段寄存器传送给存储存器 pop 指令(把字弹出堆栈) (数据传送命令) push 指令(把字压入堆栈) 存储器 寄存器 段寄器 xchg 指令(交换字或字节) (数据传送命令) 寄存器与寄存器交换 存储器与寄存器交换 寄存器与累加器交换 in 指令(端口输入) (数据传送命令) 直接输入 间接输入 out 指令(端口输出) (数据传送指令) 直接输出 间接输出 add 指令(加法)(算术指令) adc 指令(带进位加法) 寄存器+寄存器 寄存器 寄存器+存储器 寄存器 存储器+寄存器 存储器 立即数+存储器 存储器 立即数+累加器 累加器 inc 指令(加1)(算术指令) 存储器增量 寄存器增量 第 4 页
在DOS下的DEBUG命令的详细用法 在DOS下的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 [=address][address...] h (Hexavithmetic) 制算术运算 h value value i (Input) 从指定端口地址输入 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) 结束 q r (Register) 显示和修改寄存器 r [register name] s (Search) 查找字节串 s range list t (Trace) 跟踪执行 t [=address] [value] u (Unassemble) 反汇编 u [address ]或range w (Write) 存盘 w [address[driver sector secnum> ? 联机帮助 ? debug小汇编a命令 debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。 编一些小程序比汇编要来得方便,快洁。 在Debug中,中断是非常有用的,首先,让我们先了解一下中断。 所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场) ,再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。这是个很通俗的讲法。 计算机在运行时,也会出现这种情况,我们叫之中断。 下面是他的一些常用中断向量的入口值详解:(记住哦,很用的...呵呵) IBM PC 中断 int10 ooH 屏幕方式设置 入口:AH=0,AL=显示方式代码(0--6) 0:40*25 黑白 1:40*25 彩色 2:80*25 黑白 3:80*25 彩色文本 4:320*200 彩色 5:320*200 黑白 6:640*200 黑白图形模式 7:80*25 单色字符(单色显示器) 0BH 色彩设置 入口:AH=0B,BL=0 设背景色,BH=0--15 BL=1 设调色码,BH=0--1 0CH 写图形点 入口:AH=0C,CX:DX=列号:行号,AL=颜色 ODH 读图形点 入口:AH=0D,CX:DX=列号:行号 返回:AL=颜色 0EH 在当前页、当前光标处写字符 入口:AH=0E,AL=字符的ASCII码,BL=前景色 OFH 显示器状态 入口:AH=0F 返回:AL=当前显示器方式,AH=屏幕列数,BH=当前页号 01H 光标设置 入口:AH=1,CH=光标起始行号(00--0C),CL=光标结束行号(00--0C) 注:CH > CL 02H 光标定位 入口:AH=2,BH=页号,DH:DL=起始行:列 03H 读光标位置 入口:AH=3,BH=页号。 返回:DH:DL=起始行:列 06H 窗口上卷 入品:AH=6,AL=窗口上卷行数,CH:CL-DH:DL 窗口坐标 注:AL=0 卷动整个窗口 07H 窗口下卷 入口:AH=7,AL=窗口下卷行数,CH:CL-DH:DL 窗口坐标 08H 读当前光标处字符和属性 入口:AH=8,BH=页号。 返回:AH:AL=字符的颜色:字符的ASCII码 注:颜色代码见下对照表 第 1 页
在DOS下的DEBUG命令的详细用法 sub 指令(减法) (算术指令) sbb 指令(带借位减法)
debug指令详解
debug指令详解debug指令详解一、DEBUG概述DEBUG是在DOS状态下面供程序员使用的程序调试工具。
它可以用来检查内存中任何地址中的内容以及修改特定地址中的内容。
DEBUG还可以用于逐指令执行某个程序,追踪程序的执行过程,比较一条指令执行前后数值变化情况,读写文件与磁盘扇区。
此外,DEBUG还可以用于读写端口中的数值。
在DEBUG状态下,所有数据都作为字节序列,可以用DEBUG把任何类型的文件读入内存中。
DEBUG能够处理的数据为两种: 十六进制数和ASCⅡ码,使用两位数表示十六进制数据(0~9,A~F)。
在DEBUG中涉及内存中的数据时,要指定数据所在的内存单元的地址,地址的输入格式是: [段地址]: [位移]。
如果没有输入地址,DEBUG将假定为当前内存段,从位于地址100H的字节开始。
前100H字节保留给程序段前缀使用(称PSP结构,包含程序执行的各种信息),该区域用于建立DOS与程序之间的联系。
在DEBUG中,使用四位十六进制数表示地址(0~9,A~F)。
DEBUG输入数据时有两种方法: 提示方法和非提示方法。
在提示方法下,输入要求输入数据的命令,后跟保存数据的地址。
执行后可以看到该地址中已有的内容及一个冒号提示符。
此时可以在提示符下输入一个新的值或者按下回车键或CTRL+C回到“—”提示符。
在非提示方法下,输入保持数据的内存地址以及要输入的数据。
DEBUG 的启动:进入DOS状态下,键入DEBUG ,按ENTER键,如:C:\>DEBUG ,则屏幕显示:-符号“-”是进入DEBUG的提示符,在该提示符下可键入任意DEBUG命令。
DEBUG的退出:在DEBUG的提示符后输入Q命令,按ENTER键,则退出DEBUG 返回DOS。
DEBUG的使用:在DEBUG的提示符后输入DEBUG命令,按ENTER键。
二、DEBUG 命令详解★ A命令格式:A[地址]功能:将指令直接汇编成机器码输入到内存中。
汇编DEBUG命令详解
DEBUG命令详解DEBUG是DOS中的一个外部命令,从DOS 1.0起就带有此命令,因此可见此命令的重要性了。
虽然此命令的功能非常强大,可以解决许多问题,可是对许多人来说,尤其是初学者来说,却非常不易掌握。
因此,现将DEBUG的命令详细介绍一番,以让大家知道它的使用。
Debug:A(汇编)直接将 8086/8087/8088 记忆码合并到内存。
该命令从汇编语言语句创建可执行的机器码。
所有数值都是十六进制格式,必须按一到四个字符输入这些数值。
在引用的操作代码(操作码)前指定前缀记忆码。
a [address]参数address指定键入汇编语言指令的位置。
对 address 使用十六进制值,并键入不以“h”字符结尾的每个值。
如果不指定地址,a 将在它上次停止处开始汇编。
有关将数据输入到指定字节中的信息,请单击“相关主题”列表中的 Debug E(键入)。
有关反汇编字节的信息,请单击“相关主题”列表中的 Debug U(反汇编)。
说明使用记忆码段的替代记忆码为 cs:、ds:、es: 和 ss:。
远程返回的记忆码是 retf。
字符串处理的记忆码必须明确声明字符串大小。
例如,使用 movsw 可以移动 16 位的字串,使用 movsb 可以移动 8 位字节串。
汇编跳转和调用汇编程序根据字节替换自动将短、近和远的跳转及调用汇编到目标地址。
通过使用 near 或far 前缀可以替代这样的跳转或调用,如下例所示:-a0100:05000100:0500 jmp 502 ; a 2-byte short jump0100:0502 jmp near 505 ; a 3-byte near jump0100:0505 jmp far 50a ; a 5-byte far jump可以将 near 前缀缩写为 ne。
区分字和字节内存位置当某个操作数可以引用某个字内存位置或者字节内存位置时,必须用前缀 word ptr 或者前缀 byte ptr 指定数据类型。
debug常见命令使用说明
五、DEBUG调试程序DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。
它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。
1)DEBUG程序使用在DOS提示符下键入命令:C>DEBUG [盘符:][路径][文件名.EXE][参数1][参数2]这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG 进行程序调试。
若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG 程序调入内存后,再由DEBUG将指定的文件名装入内存。
2)DEBUG的常用命令(1)汇编命令A格式:A[起始地址]功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。
若缺省起始地址,则从当前CS:100地址开始存放。
A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。
(2)反汇编命令U格式1:U[起始地址]格式2:U[起始地址][结束地址|字节数]功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。
格式2将指定范围的内存单元中的目标代码转换成汇编指令。
(3)显示、修改寄存器命令R格式:R[寄存器名]功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。
缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。
AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000DI=0000 DS=3000 ES=23A0 CS=138E IP=0000NV UP DI PL NZ NA PO NC138E:0000 MOV AX,1234-R AX ;输入命令AX 0014 ;显示AX的内容:;供修改,不修改按回车。
实验一 Debug命令的使用.
1560:0100 mov ah,9
1560:0102 mov dx,109
1560:0105 int 21h ;显示字符串HELLO
1560:0107 int 20h
1560:0109 db "hello$"
1560:010F ;回车结束
—G ;运行程序
hello
提示:在DEBUG环境下输入程序段时要省掉立即数后面的字符“H”
1、MOV指令的调试:(先不做
程序段:MOV AL, 55H
MOV AH, AL
MOV BX, 1000H
MOV BYTE PTR[BX], 66H(将66H放到以寄存器间接寻址的字节单元中,-d查看
MOV WORD PTR[BX+2], 77H (将77H放到以寄存器间接寻址的字单元中, -d查看
应用:常用于在调试过程中检查变量的值。
(5单步执行命令T,格式为:
- T [=地址]
功能:从指定地址执行一条指令后停下来,显示寄存器内容和状态值。若未指定地址,则执行当前指令的下一条指令。
(6反汇编命令U ,格式为:
-U [地址]或-U范围
功能:从制定地址开始,反汇编32个字节,或对指定范围内的主存内容进行反汇编。若没有指定地址,则接着上一个U命令的最后一个单元开始;若还没有使用过U命令,则从当前CS:IP开始。例如:
1D命令(显示:-d, -d 0af9:0100 , -d 0af9:0100 0107,
-d ds :0100 0107 , -d 0100 0107,
-d 0100 L 8
2E命令(修改:-e 0af9 ; 0100 41 ‘a’, -e 0100 ‘ABCD’
DEBUG的使用及调试方法
DEBUG的使用及调试方法1、实验目的和要求:掌握DEBUG下的主要命令如:U、T、D、E、R、A、G、Q命令等。
掌握调试方法,理解CS:IP的作用,要求能在DEBUG下编写简单程序。
2. DEBUG的功能DEBUG是专门为汇编语言设计的调试工具,它通过单步、设置断点等方式,为使用者提供了非常有效的调试手段。
在DEBUG下所有输入的数据都是十六进制,所以不需要后面加H。
并且不区分大、小写字母。
3. DEBUG的调用在DOS下有两种方式调用DEBUG:(1)把执行(调试)文件装入存储器中,格式为:C>DEBUG 文件名.EXE(2)先调用DEBUG,然后用N、L命令把执行(调试)文件装入存储器。
格式为:C>DEBUG-N 文件名.EXE-L4. DEBUG的主要命令(1) U(反汇编):将机器指令进行反汇编,默认的寄存器是CS:IP,从指定地址开始反汇编32个字节,它的格式是:-U[ START-ADDR]-U[ START—ADDR END—ADDR]-U 100 ;汇编开始于CS:100-U 100 150 ;反汇编从100H 到150H的内容。
⑵T(跟踪):以单步方式执行程序。
-T ;执行一条指令。
-T 10 ;执行下面10H(16)条指令。
-T=3 2 ;从指定IP=0003开始,执行下面2条指令.(3)A (把符号指令汇编成机器码):-A 100 ;从指定地址100H开始汇编,结果写入内存。
-A ;不指定地址,则从上次A命令开始汇编。
在A命令下不能使用字段名,A命令只识别指令和DB、DW的伪指令。
⑷G (运行可执行程序):-G 200 ;从程序当前地址执行到200H结束-G ;从程序当前位置执行到程序结束-G =200 260 ;从指定(200H)或当前地址开始执行,遇到断点(260H)停止,显示寄存器和标志寄存器的内容。
⑸E(检查修改内存单元内容):默认寄存器是DS,格式是:-E[ ADDRESS] [表]-E 105 13 3A 21 ;从DS:105H开始输入3个字节的内容-E CS:211 21 2A ;从CS:211H开始输入2个字节的内容-E 110 ‘anything’;输入从DS:110H开始的字符串-E 12C ;检查修改DS:12C的内容该操作等待从键盘的输入一个或多个十六进制值的字节,字节之间用空格隔开。
[vip专享]DEBUG的使用方法
DEBUG程序的使用一、在DOS的提示符下,可如下键入Debug启动调试程序:DEBUG [路径\文件名] [参数1] [参数2]Debug后可以不带文件名,仅运行Debug程序;需要时,再用N和L命令调入被调试程序。
命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。
在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。
∙运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。
∙运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。
∙运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。
此时,CS : IP和SS : SP根据被调试程序确定,分别指向代码段和堆栈段。
DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。
二、DEBUG命令的格式Debug的命令都是一个字母,后跟一个或多个参数:字母 [参数]命令的使用中注意:①字母不分大小写;②只使用16进制数,没有后缀字母;③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;⑤命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。
许多命令的参数是主存逻辑地址,形式是“段基地址 : 偏移地址”。
其中,段基地址可以是段寄存器或数值;偏移地址是数值。
如果不输入段地址,则采用默认值,可以是缺省段寄存器值。
DEBUG使用方法简介
2.3 DEBUG使用方法简介:DEBUG是DOS命令,必须在DOS环境下运行。
由于目前都使用WINDOWS操作系统,应设法进入实地址模式的DOS环境,才能可靠地运行DEBUG。
一般可用DOS启动盘启动系统,或在WINDOWS-98系统退出时选择“切换到MSDOS”操作,进入到实地址模式的DOS环境。
由于DEBUG是DOS外部命令,因此,须把DEBUG.EXE文件拷贝到当前目录下来运行DEBUG,DOS启动盘中应事先拷贝有DEBUG.EXE文件,在WINDOWS98系统中,“C:\WINDOWS\COMMAND\”目录下有DEBUG.EXE文件。
后面的操作,假设DEBUG.EXE文件都已事先拷贝到当前目录下。
在WINDOWS操作系统中(包括WINDOWS98、2K、XP等),系统提供了V86模式的“命令提示符”窗口,在此窗口中也能运行DEBUG,但DEBUG的某些功能会受到WINDOWS系统的限制。
1.启动与退出DEBUG:启动DEBUG,在DOS提示符下输入:DEBUG[回车]屏幕显示“-”,表示已启动了DEBUG。
“-”是DEBUG子命令等待状态,后面所有的DEBUG操作(包括运行调试自编的汇编语言程序)都是在此“-”提示符下所进行的DEBUG 子命令执行。
退出DEBUG,在“-”提示符下输入:Q[回车]屏幕显示DOS命令提示符:C:\> 或A:\> 。
2.进入与退出输入汇编指令:在“-”提示符下输入:A [偏移地址] [回车]屏幕显示“<段地址>:<偏移地址> |”,此处将等待你输入汇编语言程序或实验指令。
当一条指令输入完毕[回车]后,又将自动出现下一对“<段地址>:<偏移地址> |”等待你输入下条指令,如此重复,将帮助你把整段汇编语言程序输入完毕。
注意:如果输入汇编指令时手误,屏幕上将当场提示错误“ERROE”,自动地址不进步,还在原地址上等待你重新输入正确的汇编指令。
DEBUG的使用方法
DEBUG程序的使用一、在DOS的提示符下,可如下键入Debug启动调试程序:DEBUG[路径\文件名][参数1][参数2]Debug后可以不带文件名,仅运行Debug程序;需要时,再用N和L命令调入被调试程序。
命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。
在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。
•运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。
•运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。
•运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。
此时,CS:IP和SS:SP根据被调试程序确定,分别指向代码段和堆栈段。
DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。
二、DEBUG命令的格式Debug的命令都是一个字母,后跟一个或多个参数:字母[参数]命令的使用中注意:①字母不分大小写;②只使用16进制数,没有后缀字母;③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;⑤命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。
许多命令的参数是主存逻辑地址,形式是“段基地址:偏移地址”。
其中,段基地址可以是段寄存器或数值;偏移地址是数值。
如果不输入段地址,则采用默认值,可以是缺省段寄存器值。
dos汇编debug基本命令程序
dos汇编debug基本命令程序DOS汇编(Debug)基本命令程序在学习和编写DOS汇编语言程序时,了解和掌握调试程序是非常重要的。
DOS提供了一个非常有用的调试器,即Debug。
Debug是一个基本的汇编语言调试程序,它可以让程序员在运行程序时进行单步执行,查看寄存器和内存的内容,以及进行程序的调试和错误修复。
本文将介绍DOS汇编(Debug)基本命令程序。
一、启动Debug要启动Debug,可以在DOS命令提示符下输入"debug"命令,然后按Enter键。
此时,会显示Debug的提示符"-",表示Debug 已经启动。
二、基本命令Debug提供了一系列命令,用于执行和调试汇编语言程序。
下面是一些常用的基本命令:1. a(assemble):将汇编指令翻译成机器码,并将其写入内存中。
例如,输入"a 100"表示从内存地址100开始输入汇编指令。
2. d(dump):显示内存中的内容。
可以使用"d"命令来查看内存中的指令和数据。
例如,输入"d 100"表示从内存地址100开始显示内存内容。
3. e(enter):修改内存中的指令或数据。
可以使用"e"命令来修改内存中的指令或数据。
例如,输入"e 100"表示修改内存地址100处的内容。
4. g(go):执行程序。
使用"g"命令可以让程序开始执行。
例如,输入"g"表示开始执行程序。
5. r(register):显示和修改寄存器的内容。
可以使用"r"命令来查看和修改寄存器的内容。
例如,输入"r ax"表示显示或修改AX寄存器的内容。
6. t(trace):单步执行程序。
使用"t"命令可以让程序以单步执行的方式运行。
DOS下debug使用
一DOS中DEBUG命令的名词解释a (Assemble) 逐行汇编a [address]c (Compare) 比较两内存块c range addressd (Dump) 内存16进制显示d [address]或d [range]e (Enter) 修改内存字节e address [list]f (fin) 预置一段内存f range listg (Go) 执行程序g [=address][address...]h (Hexavithmetic) 制算术运算h value valuei (Input) 从指定端口地址输入i pataddressl (Load) 读盘l [address [driver seetor>m (Move) 内存块传送m range addressn (Name) 置文件名n filespec [filespec...]o (Output) 从指定端口地址输出o portadress byteq (Quit) 结束qr (Register) 显示和修改寄存器r [register name]s (Search) 查找字节串s range listt (Trace) 跟踪执行t [=address] [value]u (Unassemble) 反汇编u [address ]或rangew (Write) 存盘w [address[driver sector secnum>? 联机帮助二、DEBUG的主要命令1、显示存储单元的命令D(DUMP),格式为:_D[address]或_D[range]例如,按指定范围显示存储单元内容的方法为:-D 100 12018E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G...8.G.....G... 18E$: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显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,·表示不可显示的字符。
