🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
![](https://img.kancloud.cn/4e/47/4e47699813d62de3c1a9b049841e23f6_844x268.png) debug是dos系统中著名的调试程序,也可以在windows系统实模式下 可以查看cpu中各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行 ## **我们用到的Debug功能(共20个命令)。** **`R`** 命令查看、改变CPU寄存器的内容: **`D`** 命令查看内存中的内容; **`E`** 命令改写内存中的内容; **`U`** 命令将内存中的机器指令翻译成汇编指令; **`T`** 命令执行一条机器指令; **`A`** 命令以汇编指令的格式在内存中写入一条机器指令。 `... ...` [TOC] ## **启用debug** 参考环境搭建章节 ![](https://img.kancloud.cn/b2/87/b287b3e94b1eeef57fac52b8f3665215_918x506.png) ## **查看寄存器内容R** r ![](https://img.kancloud.cn/6f/4b/6f4b27173d3ca5a22c1b170db9c4614c_898x138.png) ## **修改寄存器内容R** r+空格+寄存器名+回车(不需要空格即:r寄存器名+回车也可以) ![](https://img.kancloud.cn/92/2d/922dd95109c6f4b3c10821da16975d20_875x174.png) ## **查看内存的内容D** d 列出指定地址开始的128字节(即128个内存单元)的内容:【d】 列出内存中指定地址处的内容:【段地址:偏移地址】 列出内存中指定地址范围内的内容:【段地址:开始偏移地址 结尾偏移地址】 ![](https://img.kancloud.cn/6c/b2/6cb28793e1b60ee7cf565bf4b7af238d_630x293.png) ![](https://img.kancloud.cn/4c/60/4c60aadc3a92b5b7e443156f7499f961_639x288.png) ![](https://img.kancloud.cn/b6/71/b6711eb06c63017b8bd0190921d458dc_631x147.png) ![](https://img.kancloud.cn/15/5c/155c002ec98e1f14eae4494cba2fb03e_641x69.png) ![](https://img.kancloud.cn/49/ee/49ee2ad4413ba75ee30416e10050e933_891x550.png) ## **改变内存中的内容E** e 逐个询问修改:【段地址:偏移地址+回车+填值+空格 填值+空格 填值 ... 回车结束修改 】 直接修改:【段地址:偏移地址 数据1 数据2 数据3 ...】 ![](https://img.kancloud.cn/27/e2/27e241de8caaaf6d5335db56029a439f_904x270.png) ## **查看代码U** u ``` u 段地址:偏移地址 ``` 我们知道汇编指令是人能读懂的,指令本身也是数据,他都有对应的机器码 mov ax,0123H 对应的机器码为:D8 23 01 mov bx 0003H 对应的机器码为:BB 03 00 mov ax,bx 对应的机器码为:89 D8 add ax,bx 对应的机器码为:01 D8 实操: ``` e 2000:0 d8 23 01 bb 03 00 89 d8 01 d8 ``` ![](https://img.kancloud.cn/92/9d/929d5f98f34dda9ef20d7aef11706465_889x416.png) ## **写入汇编指令A** a ``` a 段地址:偏移地址 回车 汇编指令1 +回车 ... 汇编指令n +回车 回车回车结束 ``` ![](https://img.kancloud.cn/94/12/94124de5e80eb72a8da4cfc98d776c96_833x96.png) 这里我们在cs:ip处写入汇编指令方便示范下一个命令t ![](https://img.kancloud.cn/21/89/218912f574a3d76ed5e0e442285de6f8_640x407.png) ## **执行CS:IP处的汇编指令T** t ![](https://img.kancloud.cn/94/12/94124de5e80eb72a8da4cfc98d776c96_833x96.png) ![](https://img.kancloud.cn/e4/91/e49129fce5ed4c4f9877a24bb0fe4ce5_398x110.png) ![](https://img.kancloud.cn/58/0f/580ff2b387858f0ce1515f31d04143fb_881x548.png) t会向下逐个执行汇编命令,那么执行后怎么才能重置到自己想执行汇编命令的位置?jmp 073f:100 下一小节详细介绍cs:ip寄存器 ## **退出debug** q 回车