debug指令大全
汇编 DEBUG主要 命令 大全 最详细
DEBUG主要命令DEBUG是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1.DEBUG程序的调用在DOS的提示符下,可键入命令:C:>DEBUG [d:][path][文件名][参数1][参数2]其中文件名是被调试文件的名字,它必须是可执行文件(EXE),两个参数是运行被调试文件所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
2.DEBUG的主要命令⑴显示内存单元内容的命令D,格式为:-D [地址] 或-D [范围]例如,显示指定范围内存单元内容的方法为:-D 100 1FF18E4:0100 47 06 04 02 38 01 47 06 -06 02 00 02 47 06 08 02 G...8.G.....G...18E4:0110 02 02 3B 04 02 68 02 00 -4D 20 50 51 56 57 8B 37 ..;..h..M PQVW.7 其中左边为十六进制表示形式,右边为ASCII码表示形式,“.”表示不可显示字符。
这里没有指定段地址,D命令自动显示DS段的内容。
⑵修改内存单元内容的命令E,它有两种格式1)用给定内容代替指定范围的单元内容,格式为:-E 地址内容表例如:-E DS:100 F358595A8D,即用F3,58,59,5A,8D五个字节代替内存单元DS:100到DS:104的内容。
2)逐个单元相继地修改,格式为:-E 地址例如:-E DS:10018E4:0100 89.78此命令是将0100单元内容89改为78。
78是程序员从键盘输入的。
程序员在修改完一个单元后,可按“空格”键继续修改下一单元内容,直至按“回车”键结束该命令。
⑶检查和修改寄存器内容的命令R,它有三种方式1)显示CPU内部所有寄存器内容和标志寄存器中的各标志位状态-R该命令可显示AX,BX,CX,DX,SP,BP,SI,DI,DS,ES,SS,CS,IP及标志寄存器内容。
DEBUG命令参考_全
DEBUG调试命令锐捷网络交换机提供了丰富的debug(调试)指令,对于交换机所支持的各种协议和功能,基本上都提供了相应的调试功能,可以有效的帮助用户诊断和定位和排除在使用交换机中的各种问题。
下面列出了部分常用的debug 命令,与各协议和功能相关的更具体的debug命令和对其细节的注释,请参见本手册及命令参考手册中的各相关章节。
要使用debug功能,需要在特权用户模式下进行配置:命令功能Switch#debug ?显示所有可用的debug指令及简短的说明Switch #show debugging显示当前各个调试开关的状态Switch #debug all打开系统所有的调试开关Switch #undebug all关闭所有的调试开关Switch #debug aaa打开AAA调试开关Switch #debug acl打开ACL调试开关Switch #debug arp打开ARP调试开关Switch #debug dvmrp打开DVMRP调试开关Switch #debug filter打开过滤器调试开关Switch #debug igmp打开IGMP调试开关Switch #debug ip打开IP调试开关Switch #debug mstp打开MSTP调试开关Switch #debug multicast打开多播数据流调试开关Switch #debug pim打开PIM调试开关Switch #debug sys-guard打开sys-guard调试开关Switch #debug vlan打开VLAN调试开关首先、要打开日志功能:Switch(config) # logging on,其次、设置日志的级别为Debug:Switch(config) # logging monitor 7在Telnet客户端登陆模式下,缺省的debug调试信息不会发送到Telnet客户端,如果需要在Telnet客户端显示调试信息,则需要在该终端会话的特权用户模式下,执行如下命令:Switch #terminal monitor交换机包含有大量的调试命令,上表所列出的,仅仅是部分DEBUG的第一级命令而已,还有许多的DEBUG命令是有各自的子命令的,比如debug ip命令,后面还有许多的扩展选项:Switch #debug ip ?cache Debug IP cacheospf Debug IP OSPFpacket Debug IP packetpacket-event Debug IP packet-eventrip Debug IP RIP说明:打开调试开关,将会占用CPU资源,某些调试开关的打开,甚至会严重占用CPU资源,影响交换机运行效率,所以如果没有必要,请不要轻易打开调试开关,尤其慎用debug all 命令,在调试结束后,应注意关闭全部调试开关。
汇编语言debug常用命令
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小汇编a命令debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。
编一些小程序比汇编要来得方便,快洁。
在Debug中,中断是非常有用的,首先,让我们先了解一下中断。
所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场),再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。
这是个很通俗的讲法。
计算机在运行时,也会出现这种情况,我们叫之中断。
PC技术 DEBUG常用命令及其使用
DEBUG常用命令及其使用Debug是汇编程序设计的调试工具,它通过提供单步执行、断点设置等功能为汇编程序员提供了有效的调试手段。
我们通过在Debug状态下键入“?”号,就可得到所有的Debug 命令及其格式。
Debug命令一览表:assemble A[address]compare C range addressdump D[range]enter E address[list]fill F range listgo G[=address][addresses]hex H value1value2input I portload L[address][drive][firstsector][number] move M range addressname N[pathname][arglist]output O port byteproceed P[=address][number]quit Qregister R[register]search S range listtrace T[=address][value]unassemble U[range]write W[address][drive][firstsector][number] allocate expanded memory AX[#pages]deallocate expanded memory XD[handle]map expanded memory pages XM[Lpage][Ppage][handle]display expanded memory status XS上面如此多的Debug命令,也许会吓退汇编用户,但实际并不是所有的命令都必须掌握的,在进行上机程序题调试时,最常用的命令就是设置断点、单步执行、查看内存变量等,因为我们编制好汇编程序后,如果运行结果正确当然没有什么好做的,但当运行结果与我们预期的结果不一致时,就必须对程序进行调试。
DEBUG的命令及功能
DEBUG的命令及功能1. A(assemble):将指令转换成机器码并存储到内存中。
-A100:在内存地址100处开始输入指令。
2. D(dump):显示内存中的内容。
-D100200:显示内存地址从100到200的内容。
3. E(enter):修改内存中的数据。
-E1004000:在内存地址100处将数据修改为40。
4. G(go):执行程序。
-G100:从内存地址100处开始执行程序。
6. Q(quit):退出DEBUG。
-Q:退出DEBUG程序。
7. R(registers):显示和修改CPU寄存器的值。
-R:显示所有寄存器及其值。
-RAX1234:将AX寄存器的值修改为12348. T(trace):单步跟踪程序的执行。
-T:执行下一条指令并停止。
9. P(proceed):继续执行程序直至下一个断点或程序结束。
-P:继续执行程序。
10. U(unassemble):将机器码转换成指令。
-U100120:从内存地址100处开始将机器码转换成指令。
11. B(breakpoint):设置断点。
-B100:在内存地址100处设置断点。
12. S (search):在内存中指定的内容。
- S 100 200 "Hello": 在内存地址100到200之间字符串"Hello"。
13. L(load):加载程序到内存中。
-L100:从内存地址100处加载程序。
14. W(write):将内存中的数据写入文件。
- W 100 200 file.txt: 将内存地址100到200的数据写入到文件file.txt。
15. M(move):将内存中的数据移动到指定的地址。
-M100200300:将内存地址100到200的数据移动到地址300处。
16. X (execute):执行子程序。
-X100:从内存地址100处执行子程序。
17. H(help):显示DEBUG命令的帮助信息。
DEBUG调试命令
实验一 DEBUG调试命令的使用
• 实验目的:练习DEBUG常用的调试命令的 使用方法及使用时需注意的事项。 • 实验内容:常用DEBUG调试命令的使用。
实验二 数据区的移动
• 实验目的:熟悉汇编语言程序的设计,编 写数据区的移动实验程序。 • 实验内容:将以SI的内容为首地址的源串的 16个字节数据传送到以DI为首地址的目的 串中。(用两种方法实现:串的操作指 • 格式: • R :显示所有内部寄存器的内容和标志寄 存器的状态 • R [寄存器名]:显示和修改指定寄存器的内 容
5、追踪和显示命令T • • • • 格式: T [=地址] T [=地址] [条数] 其中条数决定了一共跟踪几条指令后返回 DEBUG状态
6、反汇编命令U • • • • • 格式: U [地址] U [地址范围] U 功能:将指定范围内的代码以汇编语言的 形式显示,同时显示该代码位于内存的地 址和机器码
实验三
二进制加法
• 实验目的:练习汇编语言程序设计方法, 编写二进制加法实验程序。 • 实验内容:在变量A和B开始处,各存放有 一个四字节的压缩的BCD数,将这两个数 相加,并将结果和进位标志存放在变量C处。
实验四 汇编语言程序设计(一)
• 实验目的:练习汇编语言程序设计方法, 编写数据排序实验程序。 • 实验内容:在4000h开始处存放有100个无 序的无符号数,试将这些数按照升序的顺 序排列。
实验五 汇编语言程序设计(二)
• 实验目的:练习汇编语言程序设计方法, 编写查找相同数的个数实验程序。 • 实验内容:在数据段起始地址1600h,长度 为100的字节串中,查找‘&’字符的个数, 并将个数存放在4000h单元中。(可以采用 REP SCASB和MOV指令)
DEBUG各命令详细说明(很详细)
DEBUG各命令详细说明(很详细)2.启动DEBUG在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文件名] [参数表]。
其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。
被调试的文件可以是系统中的任何文件,但通常它们的后缀为.EXE或.COM。
当DEBUG启动成功后,将显示连接符“-”,这时,可输入各种DEBUG命令。
DEBUG中所有命令及其含义如DEBUG各命令功能说明表所示。
关于使用命令的几点说明:在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行命令是单个字母,命令和参数的大小写可混合输入可用F1、 F2、F3、Ins、Del、左移键、右移键等编辑键来编辑本行命令当命令出现语法错误时,将在出错位置显示“^ Error”可用Ctrl+C或Ctrl+Break来终止当前命令的执行,还可用Ctrl+S或Ctrl+Num Lock来暂停屏幕显示(当连续不断地显示信息时)以下通过实现十九个示例来熟悉DEBUG的命令集和基本的汇编指令。
R命令的使用R命令作用:观看和修改寄存器的值。
在提示符“-”下输入以下命令:R。
DEBUG将会显示出当前所有寄存器和标志位的状态。
接下来再输入命令RCX。
在提示符“:”后输入100。
该命令的作用是将寄存器CX的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。
)最后再执行R命令,观看修改后的寄存器值。
H命令的使用H命令作用:计算两个十六进制数的和与差。
在提示符“–”下输入以下命令:H 10 1。
观看命令执行结果。
运行结果的前一个数是计算出来的和,后一个数是计算出来的差。
计算结果均用十六进制形式表示。
D命令的使用D命令作用:显示内存区域的内容。
在提示符“–”下连续执行命令R、D、D。
观看命令执行结果。
前面已经介绍过了,命令R的作用是显示当前寄存器的值。
而命令D的作用是显示内存区域的内容,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ASCII码的形式显示内存值。
debug十八命令讲解
DEBUG的十八命令讲解虽然Debug只是MS-DOS的一个外部命令,但它为我们编辑、调试程序提供了一个丰富的系统环境,曾红极一时的2.13汉字系统,就是吴晓军用Debug编辑生成的,可见其功能非同一般。
那么它到底有什么绝世武功呢?且看Debug绝学为您一一分解。
第一命令A(Assemble)招式:A[地址]功能:从指定地址开始(当地址缺省时,如果以前未用过此命令则从CS:100开始,如果以前用过此命令,则从它最后停止的地址开始,对输入的语句汇编到内存。
心法:1,支持8086/8087/8088指令集;2,可使用near或far修饰跳转或调用,near可缩写为ne;3,可以用word ptr 或byte ptr说明操作单元,word ptr可缩写为wo,byte ptr可缩写为by;4,支持伪指令db和dw;5,远返回助记符为retf;6,支持所有形式的寄存器间接寻址和所有操作码的同义词。
演练:请打开电脑跟我做(注:0B66是段地址,可能与您的不一样)。
c:\>Debug-a0B66:0100 jmp 1f0 '由于跳转地址未定,暂用1f0代替0B66:0103 db 0d,0a,07. 'Press enter key to return...',240B66:0123 mov al,00B66:0125 mov bx,2000B66:0128 mov cs,1Error 每行输完回车后,Debug自动检查语句是否正确,错误则给予提示,并要求重新输入0B66:0128 mov cx,10B66:012B mov dx,00B66:012E int 26 将A盘boot区装入内存ds:2000B66:0130 inc by [bx+1fd] 将ds:3fd字节加一0B66:0134 mov si,2000B66:0137 mov di,4000B66:013A cld0B66:013B mov cx,2000B66:013E repz0B66:013F movsb 将boot区从ds:20复制到ds:4000B66:0140 mov al,00B66:0142 mov bx,4000B66:0145 mov cx,10B66:0148 mov dx,00B66:014B int 26 把ds:400 boot区写回A盘0B66:014D mov dx,1030B66:0150 mov ah,90B66:0152 int 21 显示提示信息0B66:0154 xor ah,ah0B66:0156 int 16 从键盘读一字符0B66:0158 cmp al,0d0B66:015A jnz 154 是回车则退出,否则循环读0B66:015C int 200B66:015E 回车结束-a1000B66:0100 jmp 123 修正跳转地址0B66:0102 回车结束-rcxCX 0000:5e-wWriting 0005E bytes-q恭喜您,现在您已用Debug写出了第一个程序!各位可以用dir命令在当前目录查看一下,哈!不知什么时候已经在您的硬盘里安了家。
debug命令
-E address例如,-E DS:100则可能显示为:18E4:0100 89.-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按"空格"键可接着显示下一个单元的内容,如下:18E4:0100 89.78 1B.-这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。
·填写命令F(FILL),其格式为:-F range list例如:-F 4BA:0100 5 F3'XYZ'8D使04BA:0100~0104单元包含指定的五个字节的内容。
如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。
3)检查和修改寄存器内容的命令R(register),它有三种格式如下:·显示CPU内所有寄存器内容和标志位状态,其格式为:-R例如,-rAX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC18E4:0100 C70604023801 MOV WORD PTR [0204],0138 DS:0204=0000·显示和修改某个寄存器内容,其格式为:-R register name例如,键入-R AX系统将响应如下:AX F1F4:即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:-R bxBX 0369:059F则把BX寄存器的内容修改为059F。
·显示和修改标志位状态,命令格式为:-RF系统将响应,如:OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY-PONZDINV即可,可见键入的顺序可以是任意的。
汇编debug命令大全
(11)写命令 ) 格式: 起始地址] 格式:W [起始地址 起始地址 功能: 功能: 将起始地址开始的数据写入由 CS:5CH处的文件控制块所指定的文件中。如果未 处的文件控制块所指定的文件中。 处的文件控制块所指定的文件中 指定地址则数据从CS:0100开始。 开始。 指定地址则数据从 开始 要写入文件的字节数应先放入BX和 中 注:要写入文件的字节数应先放入 和CX中。 文件大小为20字节 字节, 如:文件大小为 字节,则BX和CX中的内容应 和 中的内容应 设为: 设为: (CX)= 0014H ) (BX)=0000H ) 即: (BXCX)=00000014H ) 例 :N aa R bx R cx w cs:0 首先命名文件,名字为 首先命名文件,名字为aa; 其次把准备写入文件aa的字节数 其次把准备写入文件 的字节数 寄存器; 放入 BX和CX 寄存器 和 最后将代码段0000H单元开始的代码 最后将代码段 单元开始的代码 写入文件aa; 写入文件
(7)汇编命令 ) 格式: 起始地址 起始地址] 格式:A[起始地址 功能:允许键入汇编语言语句, 功能:允许键入汇编语言语句,并能把它们 汇编成机器代码, 汇编成机器代码,相继地存放在从指定地址开始的 存储区。 存储区。 把键入的数字均看成十六制数, 注:DEBUG把键入的数字均看成十六制数, 把键入的数字均看成十六制数 所以要键入十进制数,则其后必须加以标识符D。 所以要键入十进制数,则其后必须加以标识符 。 (8)反汇编命令 ) 格式1: 起始地址 起始地址] 格式 :U[起始地址 功能:从起始地址开始反汇编32个字节 个字节。 功能:从起始地址开始反汇编 个字节。 例:U100 如果地址被省略,则从上一个U命令的最后一 如果地址被省略,则从上一个 命令的最后一 条指令的下一个单元开始显示32个字节 个字节。 条指令的下一个单元开始显示 个字节。 格式2: 起始范围 起始范围] 格式 : U[起始范围 功能:对指定范围的存储单元进行反汇编。 功能:对指定范围的存储单元进行反汇编。 例:U100 10C
DEBUG命令
8.查找,比较和移动内存数据命令. 8.查找,比较和移动内存数据命令.S/C/M 查找 对内存中的数据进行比较, 对内存中的数据进行比较,移动及查找某 一特定字节. 一特定字节. 移动内存命令M(Move) 移动内存命令M 移动内存命令 格式: <源地址范围><目的地址 源地址范围><目的地址> 格式:M <源地址范围><目的地址> 如:-MDS:00 1F 100
DEBUG下的提示符" DEBUG下的提示符"-" 下的提示符
命令格式: 参数] 2. 命令格式: 命令 [参数] 命令 DEBUG的所有命令动词均由一个字母(大小写均可)构成! DEBUG的所有命令动词均由一个字母(大小写均可)构成! 的所有命令动词均由一个字母 DEBUG下的所有数字均为十六进制数! DEBUG下的所有数字均为十六进制数! 下的所有数字均为十六进制数 参数 地址表示方法: 地址表示方法: [addresss] 段地址: 段地址:偏移量 段寄存器:偏移量 段寄存器: 如:1419:000 1419: 或:DS:0000 DS: 地址范围表示方法:段地址: 地址范围表示方法:段地址:始偏移量 末偏移量 [rang] 长度(字节数) 或:段地址:起始偏移量 L长度(字节数) 段地址: 1419: 如: 1419:100 1FF 1419: 或: 1419:100 L100
6.运行命令G 6.运行命令G(Go) 运行命令 [address3…]} -G[=address1] [address2 [address3 ]} 从指定地址1开始运行,后面为断点地址. 从指定地址1开始运行,后面为断点地址.如不指定 则从当前CS IP开始运行 CS: 开始运行. 则从当前CS:IP开始运行. 如:-G=100 10A
Debug主要命令
Debug主要命令1. A[地址] 汇编命令功能: 将指令直接汇编成机器码输入到内存中。
说明: 用于小段程序的汇编及修改目标程序,所有输入的数字均采用十六进制,用户装入内存的汇编语句是连续存放的,若没有指定地址,并且前面没有使用汇编命令,该语句被汇编到 CS:0100区域。
-a 010008F1:0100 MOV AH,0908F1:0102 MOV DX,10908F1:0105 INT 21H08F1:0109 db 'HELLO WORLD!$'08F1:0115-g2.D[地址] 或D[起始地址][目的地址] 转储命令功能: 以内存映象方式显示内存中的信息。
说明: 转储用左右两部分显示内存映象内容,左边以十六进制,右边以ASCII字符显示,所有不可打印字符用句号(.)表示。
每行显示16个字节的内容,在第八和第九个字节之间有一个连字符 - 此命令隐含的段地址为DS的值。
若未指定起始地址,则D命令从显示的最后一个单元的下一个单元开始显示,若以前没有使用给D命令,则从初使化的段寄存器的内容,加上地址偏移量 0100H 开始显示。
3.E[地址] [字节串) 修改内存命令功能: 从指定的地址开始修改内存值。
说明: 若地址部分只输入偏移量,则 E 命令认为段包括在DS寄存器中。
命令格式有两种:其一是用命令中包含的字节串替换从指定的地址开始的多个字节的内容;其二是命令后不跟字节串,则允许按顺序方式显示和修改字节,按下空格键为显示下一字节内容,若想修改,直接输入相应值。
4.F[地址范围] [字节或字节串] 填写命令功能: 将要填写的字节或字节串填入由地址范围指定的存储器中。
5.G[=起始地址] [[断点]……] 执行命令功能: 执行正在调试的程序,当达到断点时停止执行,并且显示寄存器标志和下一条要执行的命令。
说明: 如果没有指定起始地址,那么当前指令地址由CS,IP寄存器的内容来决定,如果用户指定起始地址就从指定的起始地址开始执行。
DEBUG命令一览表
DEBUG 主要命令一览表 DEBUG [d:] [path] [.exe] [参数]2、DEBUG的主要命令(1)汇编命令A,格式为:-A[地址] 该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
(2)反汇编命令U,有两种格式:1)-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U范围该命令对指定范围的内存单元进行反汇编,例如:-U 04BA:0100 0108或–U 04BA:0100 L9 此二命令是等效的。
(3)运行命令G,格式为:-G [=地址1][地址2[地址3。
]] 其中地址1规定了运行起始地址,后面的若干地址均为断点地址。
(4)追踪命令T,有两种格式:1)逐条指令追踪:-T[=地址] 该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2)多条指令追踪:-T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]确定。
(5)显示内存单元内容的命令D,格式为:-D[地址]或-D[范围](6)修改内存单元内容的命令E,它有两种格式:1)用给定的内容代替指定范围的单元内容:-E地址内容表例如:-E 2000:0100 F3 “XYZ” 8D 其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。
2)逐个单元相继地修改:-E地址例如:-E 100:18E4:0100 89.78 此命令是将原100号单元的内容89改为78。
78是程序员键入的。
(7)检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R R命令显示中标志位状态的含义如下表所示:标志名置位复位溢出Overflow(是/否)OVNV 方向Direction(减量/增量)DNUP 中断Interrupt(允许/屏蔽)EIDI 符号Sign(负/正)NGPL 零Zero(是/否)ZRNZ 辅助进位Auxiliary Carry (是/否)ACNA 奇偶Parity(偶/奇)PEPO 进位Carry(是/否)CYNC 2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如打入:-R AX 系统将响应如下:AX FIF4 :表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BX BX 0369 :059F 则BX内容由0369改为059F 3)显示和修改标志位状态,命令格式为:-RF 系统将给出响应,如OV DN EI NG ZR AC PE CY- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。
实用debug命令集锦
实用debug命令集锦1. 非物理0磁道坏软盘的修复此种损坏从软盘盘面上来看并没有明显的划伤和霉变。
一般可以恢复其数据,也可是软盘重新在利用。
处理方法如下:ⅰ. 进入debugⅱ. 取一张引导区没有损坏的好磁盘,插入软驱-l 100 0 0 1ⅲ. 插入损坏的磁盘到软驱-w 100 0 0 1-q注意:好盘与坏盘容量必须相同2. 物理0磁道坏软盘中的数据读取对于0磁道损坏的磁盘,一般来说是应该抛弃了,当你也不妨试一试已下方法:磁化处理:用较强的磁铁在靠近坏磁盘的表面处反复移动,切不可碰到磁盘介质,以免划伤表面,然后在试试格式化。
软盘换面:小心的将磁盘打开,坚磁片与金属芯片分开,方面后再按原来的方法粘在一起即可,在重新格式化。
diskfix:对于diskfix想必大家都用的比较多了,里面的磁盘修复功能很好用的。
能修复大多数磁盘表面错误。
3. 硬盘启动失败处理在正常机上格式化一张软盘,无其它数据进入debug-l 0 2 0 1-w 0 0 0 1-q用系统盘启动故障机后在进入debug-l 0 0 0 1-w 0 2 0 1-q4. 软盘不能正确读取解决方法如果使用软盘时出现如下提示general failure error reading drive a可以用以下方法解决:将一张好盘插入软驱进入debug-a 100****:*100 mov al,0****:**** mov cx,1****:**** mov dx,0****:**** mov bx,1000****:**** int 25****:**** int 20回车-g=0100插入坏盘并进入debug-a 200****:*100 mov al,1****:**** mov cx,1****:**** mov dx,0****:**** mov bx,1000****:**** int 26****:**** int 20回车-g=2005. cmos 数据的保存,恢复cmosram的’地址口’的口地址为70h ’数据口’的口地址为 71h 读取时只需将读的cmosram的地址送到70h,随后就可以从71 h中得到所需数据。
DEBUG命令集锦
DEBUG是DOS操作系统中的一个外部命令,从DOS 1.0起就带有此命令。
利用此命令下的子命令,可以查看和修改寄存器、内存单元的内容;输入并执行汇编指令;可以查看(反汇编)代码段中的指令;可以对端口进行操作;可以对磁盘和磁盘文件进行操作;可以调试简单程序。
因此可见此命令的重要性了。
虽然此命令的功能非常强大,可以解决许多问题,可是对许多人来说,尤其是初学者来说,却非常不易掌握。
因此,现将学习汇编语言常用到的DEBUG的命令详细介绍一番,以让大家知道它的使用。
其他命令请参考其他详细资料。
1. A(汇编,ASSEMBLE)作用:直接将 8086/8087/8088 记忆码合并到内存(默认存到代码段中)。
该命令从汇编语言语句创建可执行的机器码。
所有数值都是十六进制格式,必须按一到四个字符输入这些数值。
在引用的操作代码(操作码)前指定前缀记忆码。
格式:A [ADDRESS]说明:ADDRESS指定键入汇编语言指令的位置。
对 ADDRESS 使用十六进制值,但键入时不以“H”字符结尾,如果十六进制数以字母开始,也不要在前面加“0”。
如果不指定地址,A 将在它上次停止处开始汇编。
例:在代码段中偏移地址为0200处存入指令MOV AX,BX (假定CS=0B49H)A 命令支持两个常用的伪指令:DB 操作码,将字节值直接汇编到内存,DW 操作码,将字值直接汇编到内存。
以下是两个伪指令的范例:A 命令支持所有形式的寻址方式和所有操作码同义词。
2. C(内存比较,COMPARE)作用:比较两个内存区域中的数据是否相同格式:C RANGE ADDRESS说明:①RANGE指定要比较的内存第一个区域的起始和结束地址,或起始地址和长度。
②ADDRESS指定要比较的第二个内存区域的起始地址。
如果内存第一个区域的内容和内存第二个区域的内容相同,DEBUG 将不显示任何内容而直接返回到DEBUG 提示符。
如果有差异,DEBUG 将按如下格式显示:ADDRESS1 BYTE1 BYTE2 ADDESS2例:比较DS:0000-DS:000F和ES:0000-ES:000F区域的数据以下命令具有相同效果:C 100,10F 300C 100 L10 300每个命令都对 100H 到 10FH 的内存数据块与 300H 到 30FH 的内存数据块进行比较。
debug指令大全
debug指令⼤全⼀、预习内容预习DEBUG程序的各种命令功能及使⽤⽅法。
⼆、实验⽬的1、掌握DEBUG程序的各种命令,重点是A,R,D,E,U,T,G,N,W,Q等命令的使⽤。
2、掌握⽤DEBUG调试⾃编程序的⽅法,为以后实验打下基础。
三、实验内容1、⽤命令A汇编下列指令,并判断指令正误并说明原因。
(1)ROR AX,8(2)LEA DI,[AX](3)MOV DS,2010(4)PUSH AL(5)OUT 900,AL(6)MOV [BX],02、掌握⽤DEBUG编写程序的⽅法。
C:\MASM>DEBUG-A136E:0100 MOV DX, 10C136E:0103 MOV AH, 9136E:0105 INT 21136E:0107 MOV AX, 4C00136E:010A INT 21136E:010C-E10C 'Hello!$'-R CX ;⽂件字节数写在CX中CX 0000:13-N /doc/57f16180d4d8d15abe234ef1.html ;给⽂件命名-W;写⼊到磁盘中Writing 00013 bytes-GHello!C:\MASM> DEBUG /doc/57f16180d4d8d15abe234ef1.html-U-G-Q四、问题1、在指令MOV [BX],AX中,操作数[BX]的寻址⽅式是什么?在DEBUG下执⾏完该指令后,如何查看执⾏结果?2、可否随意在DEBUG提⽰符“-”后不带参数发出命令G?什么情况下使⽤命令G时,可不⽤“=”给出程序的⾸地址?五、预习内容预习汇编程序的功能及汇编过程。
六、实验⽬的熟悉宏汇编MASM 6.0的使⽤,掌握对汇编语⾔源⽂件的编辑、汇编及连接的⽅法。
七、实验内容1、⽤编辑软件EDIT编辑源程序SAMPLE.ASM,功能是输出字符串“HELLO!”。
SAMPLE.ASM程序代码如下:DATA SEGMENTSTRING DB 'HELLO!',' $'DATA ENDSSTACK SEGMENT 'STACK'DB 100 DUP(?)STACK ENDSCODE SEGMENTMAIN PROC FARASSUME DS:DATA,SS:STACKASSUME CS:CODESTART:PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXLEA DX,STRINGMOV AH,9INT 21HMOV AH,4CHINT 21HRETMAIN ENDPCODE ENDS2、⽤MASM程序对其进⾏汇编,产⽣SAMPLE.OBJ⽂件。
debug GM命令集
d_c2scmd 10837 角色ID--角色透明
d_c2scmd 10840 模型ID--角色模型
d_c2scmd 10850 数值--设定角色声望值
d_c2scmd 10852--显示角色各类ID
d_c2scmd 10853--清除包裹所有物品
1:气血 2:真气 3:攻击 4:防御 5: 命中 6:躲闪 7:技能命中 8:技能躲闪 9:元力值 10:致命一击 11:致命伤害 12:减免致命一击 13:减免致命伤害 14:御仙 15:御魔 16:御佛 17:克仙 18:克魔 19:克佛 20:减免伤害 21:减免伤害% 22:眩晕抗性 23:定身抗性 24:魅惑抗性 25:虚弱抗性 26:昏睡抗性 27: 28: 29:气血增加 30:真气增加 31:攻击增加 32:防御增加 33:元神威能
d_c2scmd 10854--清除仓库密码
d_c2scmd 10855 10855--杀死地图所有怪物并获得经验
d_c2scmd 10856 数值--增加宠物经验
d_c2scmd 10865 1 数值--设定精灵随机属性点并归零属性加点
d_c2scmd 10865 2 数值--设定精灵剩余体力值
d_c2scmd 3022 + [物品id] :在包裹中添加一组物品(叠加上限)
d_c2scmd 2008 + [区域id] x z :手动转移地图
d_c2scmd 20000 :重启当前线
d_c2scmd 3022 + [物品id] :在包裹中添加一组物品(叠加上限)
其他GM命令详见 configs里console_cmd.txt
常用DEBUG命令
常用DEBUG命令DEBUG命令是在命令提示符“_”下由键盘键入的。
每条命令以单个字母的命令符开头,然后是命令的操作参数,操作参数与操作参数之间,用空格或逗号隔开,操作参数与命令符之间用空格隔开,命令的结束符是回车键(ENTER)。
命令及参数的输入可以是大小写的结合。
Crtl+Break键可中止命令的执行。
Crtl+NumLock键可暂停屏幕卷动,按任一键继续。
所用的操作数均为十六进制数,不必写H。
1.汇编命令A格式:(1)A<段寄存器名>:<偏移地址>(2)A<段地址>:<偏移地址>(3)A<偏移地址>(4)A功能:汇编命令是将用户输入的汇编语言指令,汇编为可执行的机器指令。
键人该命令后显示段地址和偏移地址并等待用户从键盘逐条键入汇编语言指令。
每当输入一行语句后按“ENTER”键,输入的语句有效。
若输入的语句中有错,DEBUG会显示“^ Error”,要求用户重新输入,直到显示下一地址时用户直接键入回车键返回到提示符“_”。
其中(1)用指定段寄存器内容作段地址;(3)用CS内容作段地址;(4)以CS:100作地址。
以后命令中提及的各种‘地址’形式,均指(1)、(2)、(3)中A命令后的地址形式。
2.比较命令C格式:C <源地址范围>,<目标地址>其中<范围>是由<起始地址><终止地址>指出的一片连续单元,或由<起始地址> L <长度>指定的。
功能:从<源地址范围>的起始地址单元起逐个与目标起始地址以后的单元顺序比较单元的内容,直至源终止地址为止。
遇有不一致时,以<源地址><源内容><目标内容><目标地址>的形式显示失配单元及内容。
3.显示内存单元命令D格式:(1)D <地址>(2)D <地址范围>(3)D其中(1)以CS为段寄存器;(3)显示CS:100为起始地址的一片内存单元内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、预习内容
预习DEBUG程序的各种命令功能及使用方法。
二、实验目的
1、掌握DEBUG程序的各种命令,重点是A,R,D,E,U,T,G,N,W,Q等命令的使用。
2、掌握用DEBUG调试自编程序的方法,为以后实验打下基础。
三、实验内容
1、用命令A汇编下列指令,并判断指令正误并说明原因。
(1)ROR AX,8
(2)LEA DI,[AX]
(3)MOV DS,2010
(4)PUSH AL
(5)OUT 900,AL
(6)MOV [BX],0
2、掌握用DEBUG编写程序的方法。
C:\MASM>DEBUG
-A
136E:0100 MOV DX, 10C
136E:0103 MOV AH, 9
136E:0105 INT 21
136E:0107 MOV AX, 4C00
136E:010A INT 21
136E:010C
-E10C 'Hello!$'
-R CX ;文件字节数写在CX中
CX 0000
:13
-N ;给文件命名
-W;写入到磁盘中
Writing 00013 bytes
-G
Hello!
C:\MASM> DEBUG
-U
-G
-Q
四、问题
1、在指令MOV [BX],AX中,操作数[BX]的寻址方式是什么?在DEBUG下执行完该指令后,如何查看执行结果?
2、可否随意在DEBUG提示符“-”后不带参数发出命令G?什么情况下使用命令G时,可不用“=”给出程序的首地址?
五、预习内容
预习汇编程序的功能及汇编过程。
六、实验目的
熟悉宏汇编MASM 6.0的使用,掌握对汇编语言源文件的编辑、汇编及连接的方法。
七、实验内容
1、用编辑软件EDIT编辑源程序SAMPLE.ASM,功能是输出字符串“HELLO!”。
SAMPLE.ASM程序代码如下:
DATA SEGMENT
STRING DB 'HELLO!',' $'
DATA ENDS
STACK SEGMENT 'STACK'
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME DS:DATA,SS:STACK
ASSUME CS:CODE
START:PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
RET
MAIN ENDP
CODE ENDS
END START
2、用MASM程序对其进行汇编,产生SAMPLE.OBJ文件。
3、用LINK程序对其进行连接,产生SAMPLE.EXE文件。
4、执行SAMPLE.EXE文件,并观察运行结果是否相符。
5、用DEBUG调试程序。
八、问题
1、汇编语言源程序、汇编程序及汇编之间的区别与联系?
程序中MOV AH,4CH 与 INT 21H 这两条语句的功能是什么?能否省略?
实验三分支程序设计
九、预习内容
预习转移类指令的用法。
十、实验目的
掌握宏汇编语言MASM上机操作过程和分支程序的编写方法。
十一、实验内容
设计要求:分别在数据段和附加段各定义一串字符,编写代码判断两者是否相同,如果相同则输出MATCH!,如果不同则输出NO MATCH!。
操作提示:
DA TA SEGMENT
STRING1 DB 'WORLD!',' $'
A1 DB 'MATCH','$'
A2 DB 'NO MA TCH','$'
DA TA ENDS
EXT SEGMENT
STRING2 DB 'WORLD!','$'
EXT ENDS
STACK SEGMENT 'STACK'
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME DS:DATA,SS:STACK
ASSUME CS:CODE,ES:EXT
START:PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,EXT
MOV ES,AX
LEA SI,STRING1
LEA DI,STRING2
CLD
MOV CX,6
REPZ CMPSB
JZ MA TCH
LEA DX,A2
JMP O1
MATCH:LEA DX,A1
O1:MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
RET
MAIN ENDP
CODE ENDS
END START
十二、问题
1、转移指令分为哪几种,各指令之间有何区别?
2、调用INT 21H中的09H功能时,要注意什么?
实验四 循环程序设计
十三、 预习内容
预习循环控制指令的用法。
十四、 实验目的
掌握宏汇编语言MASM 上机操作过程和循环程序的编写方法。
十五、 实验内容 设计要求:将两个多位十制数相加,要求被加数均以ASCII 码形式各自顺序存放在以DA TAl 和DATA2为首的5个内存单元中(低位在前),结果送回DATAl 处。
其参考流程图如下:
显示被加数和加数清除进位标志
CX 计数值5
执行ADC带进位加法运算
AAA调整
AH
结果送被加数区
调整偏移量
CX-1=0?
AH 将FR低8位AH
AH
01[BX]
AH
十六进制结果转化为ASCII码表示的数字串
显示结果结束
N
Y
十六、问题
1、循环控制指令分为哪几种,各指令之间有何区别?
2、汇编语言程序中语句END后的标号作用是什么?
3、一个段的大小为多少?一定是64KB吗?如何在DEBUG下查看程序在内存的存放情况?
实验五子程序设计
十七、预习内容
预习子程序的定义、调用及返回的方法。
十八、实验目的
掌握子程序的调用与返回设计的方法;掌握子程序设计与应用应注意的问题及调用技巧。
十九、实验内容
设计要求:在源程序中设置数据段、堆栈段及代码段。
在数据段中定义8个字节数据,把这些数据转换成十六进制数的ASCII码存在上述数据之后,然后在屏幕上显示这些数据。
显示数据用DOS功能21号调用,每个数据用空格分隔。
其参考流程图如下:
图5-1 显示ASCII码字符子程序流程图
图 5-2 二进制数对十六进制数转换及显示主程序流程图
二十、 问题
1、 什么是子程序?
2、 子程序设计与应用应注意哪些问题?
3、 子程序调用有哪些技巧?
G1。