单条汇编命令(求debug命令详解)

本文目录
求debug命令详解
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=0000
DI=0000 DS=3000 ES=23A0 CS=138E IP=0000
NV UP DI PL NZ NA PO NC
138E:0000 MOV AX,1234
-R AX ;输入命令
AX 0014 ;显示AX 的内容
: ;供修改,不修改按回车。
若对标志寄存器进行修改,输入:-RF
屏幕显示如下信息,分别表示OF、DF、IF、SF、ZF、AF、PF、CF 的状态。
NV UP DI PL NZ NA PO NC
不修改按回车键。要修改需个别输入一个或多个此标志的相反值,再按回车键。
R 命令只能显示、修改16 位寄存器。
(4)显示存储单元命令 D
格式1:D
格式2:D
功能:格式1 从起始地址开始按十六进制显示80H 个单元的内容,每行16 个单
元,共8 行,每行右边显示16 个单元的ASCII 码,不可显示的ASCII 码则显示
“·”。格式2 显示指定范围内存储单元的内容,其他显示方式与格式1 一样。
如果缺省起始地址或地址范围,则从当前的地址开始按格式1 显示。
例如: -D 200 ;表示从DS:0200H 开始显示128 个单元内容
-D 100 120 ;表示显示DS:0100-DS:0120 单元的内容
说明:在DEBUG 中,地址表示方式有如下形式:
段寄存器名:相对地址,如:DS:100
段基值:偏移地址(相对地址),如:23A0:1500
(5)修改存储单元命令 E
格式1:E
格式2:E
功能:格式1 按内容表的内容修改从起始地址开始的多个存储单元内容,即用内
容表指定的内容来代替存储单元当前内容。
例如:—E DS:0100 ’VAR’ 12 34
表示从DS:0100 为起始单元的连续五个字节单元内容依次被修改为
’V’、’A’、’R’、12H、34H。
格式2 是逐个修改指定地址单元的当前内容。
如:—E DS:0010
156F:0010 41.5F
其中156F:0010 单元原来的值是41H,5FH 为输入的修改值。若只修改一个单元
的内容,这时按回车键即可;若还想继续修改下一个单元内容,此时应按空格键,
就显示下一个单元的内容,需修改就键入新的内容,不修改再按空格跳过,如此
重复直到修改完毕,按回车键返回DEBUG“-”提示符。如果在修改过程中,将
空格键换成按“-”键,则表示可以修改前一个单元的内容。
(6)运行命令 G
格式:G
功能:CPU 从指定起始地址开始执行,依次在第一、第二等断点处中断。若缺省
起始地址,则从当前CS:IP 指示地址开始执行一条指令。最多可设置10 个断点。
(7)跟踪命令 T
格式:T
功能:从指定地址开始执行‘正整数’条指令,若缺省‘正整数’,表示执行一
条指令,若两项都缺省,表示从当前CS:IP 指示地址开始执行一条指令。
(8)指定文件命令 N
格式:N《文件名或扩展名》
功能:指定即将调入内存或从内存写入磁盘的文件名。该命令应该用在L 命令和
W 命令之前。
(9)装入命令 L
格式1:L
格式2:L
功能:格式1 根据盘符号,将指定扇区的内容装入到指定起始地址的存储区中。
格式2 将N 命令指出的文件装入到指定起始地址的存储区中,若省略起始地址,
则装入到CS:100 处或按原来文件定位约定装入到相应位置。
(10)写磁盘命令 W
格式1:W《起始地址》《起始扇区》《扇区数》
格式2:W
功能:格式1 把指定地址开始的内容数据写到磁盘上指定的扇区中。
格式2 将起始地址的BX×10000H+CX 个字节内容存放到由N 命令指定的文件中。
在格式2 的W 命令之前,除用N 命令指定存盘的文件名外,还必须将要写的字节
数用R 命令送入BX 和CX 中。
(11)退出命令 Q
格式:Q
功能:退出DEBUG,返回到操作系统。
以上介绍的是DEBUG 常用命令,其他命令请参考有关书籍。
怎样用debug单步执行汇编语言
:
.
(1)DAA.asm源程序,功能是用程序代替加法运算后的十进制调整指令DAA:
(2)将源程序编译链接得DAA.exe
.
(2)用DEBUG调入并调试程序,
先用T命令单步运行第一条指令,再用G命令连续运行后结指令:
汇编lea命令
lea命令为加载有效地址(load dffective address) 和mov用法一样。指令并不是从制定的位置读入数据,而是将有效地址写入到目的操作数值中。
但是,它还可以简洁的描述普通的算术操作。
lea (%rdi, %rsi,1),%eax
比如 %rdi =》 4, %rsi=》 5,
%eax= 4+ 5 * 1

更多文章:
手机病毒源码下载(我用360扫到了“Android.Riskware.SmaPay.G”,是病毒吗)
2025年11月28日 08:45
数据类型转换规则(Java基本数据类型的自动类型转换和强制类型转换的规律是什么)
2026年5月1日 17:15
eclipse设置tomcat网页(eclipse配置tomcat)
2025年9月28日 14:00
C语言中怎样调用函数(举个例子)?一个数,调用一个函数,能作为函数的实参么
2025年5月25日 02:45
java小程序游戏(需要一个java小程序要在500行左右的(30分+20分))
2025年6月8日 15:45
architect是什么意思(architect的翻译是什么)
2026年1月30日 06:00
电脑service是什么意思(services.exe在进程里是什么意思,关了它对电脑会有影响嘛)
2025年10月19日 01:30
随机数函数rand怎么把数值固定 但是表格样式变了(excel 随机数怎样才能固定不改变)
2026年3月10日 10:00
短时分数阶傅里叶变换matlab(求:分数阶傅里叶变换的matlab程序,请各位帮帮忙)
2026年9月8日 01:00
java类方法和对象方法(java中什么时候用类方法什么时候用对象方法)
2025年12月6日 21:30
目标程序的含义(目标管理的基本程序是什么 目标管理控制程序)
2026年2月13日 05:45













