汇编语言debug常用调试 命令详解
2012-05-28 13:33 youxin 阅读(4772) 评论(0) 编辑 收藏 举报显示修改寄存器命令R
R;★显示所有寄存器和标志位状态;
★显示当前CS:IP指向的指令。
显示标志时使用的符号:
标志 标志=1 标志=0
OF OV NV
DF DN UP
IF EI DI
SF NG PL
ZF ZR NZ
AF AC NA
PF PE PO
CF CY NC
显示命令D
① D [地址]
② D [范围]
如不指定范围,一次显示8行×16个字节。
-D ;默认段寄存器为DS,当前偏移地址
-D DS:100 / -D CS:200
-D 200:100
-D 200;200为偏移地址,默认段寄存器DS
-D DS:100 110/ -D 100 L 10
修改命令E
① E 地址 ;从指定地址开始,修改(或连续修改)存储单元内容。DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。
② E 地址 数据表;从指定的地址开始用数据表给定的数据修改存储单元。
-E DS:100 F3 ‘AB’ 8D。
.反汇编命令U
① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。
② U 范围;对指定范围的单元进行反汇编。
-U
-U100
-U100L10
汇编命令A
A [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP开始(通常是CS:100)。
注释:①在DEBUG下编写简单程序即使用A命令。
②每条指令后要按回车。
③不输入指令按回车,或按Ctrl+C结束汇编。
④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。
跟踪命令(单步执行命令)T
① T;从当前IP开始执行一条指令。
② T 数值;从当前IP开始执行多条指令。
② T =地址;
③ T =地址 数值;
-T
-T5 / -T=100 5
跟踪执行并跳过子程序命令P
P [=地址] [数值];类似T命令,但跳过子程序和中断服务程序,还有循环。循环时并不跟踪下去, 而是把它们当作一条指令来执行。
loop s1一次执行完成。
运行程序命令G
① G;从CS:IP指向的指令开始执行程序,直到程序结束或遇到INT 3。
② G=地址;从指定地址开始执行程序(前面的指令一步运行到位),直到程序结束或遇到INT 3。
③ G 断点1[,断点2,…断点10];从CS:IP指向的指令开始执行程序,直到遇到断点。
④G=地址 断点1[,断点2,…断点10]
-G ;从CS:IP指向的指令开始执行程序。
-G=100 ;从指定地址开始执行程序。
-G=100 105 110 120
-g 4c;
退出DEBUG命令Q
Q;返回DOS环境。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通