精华内容
下载资源
问答
  • Debug命令

    2013-01-30 18:28:35
    常用Debug命令 R:查看、改变CPU寄存器的内容 D:查看内存中的内容 E:改写内存中的内容 U:将内存中的机器指令翻译成汇编指令 T:执行一条机器指令 A:以汇编指令的格式在内存中写入一条机器指令 具体...

    常用Debug命令

    R:查看、改变CPU寄存器的内容

    D:查看内存中的内容

    E:改写内存中的内容

    U:将内存中的机器指令翻译成汇编指令

    T:执行一条机器指令

    A:以汇编指令的格式在内存中写入一条机器指令


    具体操作步骤

    第一步:先是【开始】---> 【运行】,输入cmd;如下:


    【确定】,进入到命令行窗口,并输入debug命令,如下:


    回车后,进入Debug窗口,如下:


    使用e命令向特定地址的内存中写入数据(例如:本例中向1000:0的内存地址中写入 23 11 22 66 这几个数据),如下:


    写入后可以使用d命令来查看,操作如下:


    使用r命令可以查看各个寄存器中的值,操作如下:


    可也用a指令以汇编语言的形式写入汇编代码,(先用r指令查找出cs、ip的地址,再用a指令写入汇编代码)如下:


    写了汇编代码后就可以使用t指令来单步执行了,操作如下:



    展开全文
  • 8086汇编 DEBUG命令详解

    2020-06-21 19:00:59
    8086汇编语言 DEBUG命令 带有截图和讲解


       DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
       笔者使用DOSBOX进行一些DEBUG指令的演示

    DEBUG程序的启动

    1.没有文件名,直接打开DEBUG

    C:>DEBUG

    段寄存器CS、DS、ES和SS置为DEBUG程序后的第一个段。指令指针寄存器IP置为100H(程序段前缀PSP后的第一个语句)。 堆栈指针SP置为段末或COMMAND.COM暂驻部分的结束地址(其中较小的那个地址)。
    2.对指定可执行文件进行 DEBUG

    C:>DEBUG NAME.EXE

    DEBUG主要命令

    1.汇编命令 A

    使用格式 -A[地址]:由使用者输入汇编语句,DEBUG负责将它们汇编成机器代码相继存放在从指定地址开始的存储器中。
    eg1.1
    (这里DEBUG将我的四个汇编语句存在了内存中地址从 163B:1000 开始的几个字节中,前两句汇编语句都占了3个字节,加法语句占2个字节,最后一句汇编语句占了3个字节)

    2.反汇编命令 U

    (1)格式:-U [地址]该命令从指定地址开始,反汇编 (指把机器代码翻译成汇编语句)32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
    eg2.1
    反汇编了内存中163B:1000开始的32个字节的机器代码,得到的前四条语句即先前笔者使用-A命令汇编的四条汇编指令
    eg2.2
    (取这段地址是因为DEBUG OUTPUT.EXE时发现代码段CS的地址就是从076D:0000,和本文末尾的output.asm中的源代码比较一下,已经成功的把我的源代码在汇编过程得到的机器代码反汇编成了汇编指令

    (2)第二种格式:-U [地址范围] 对该地址范围中的机器代码进行反汇编

    在这里插入图片描述

    3.运行命令 G

    格式 -G 地址 显示执行到该地址时寄存器中的内容(相当于断点调试
    在这里插入图片描述
    在这里插入图片描述
    这里我们还是调试OUTPUT.EXE,首先使用-R命令检查初始时的寄存器内容,我们现在只关注AX,DS寄存器,开始AX=FFFF,DS=075C,然后使用-G命令运行到076D:0003断点,此时AX=076C,DS=075C,这是因为程序至此已经将076C传送给AX寄存器,但还没有进行‘MOV DS,AX’ ,我们再使用-G命令运行到0005断点,此时DS=AX=076C,所以说这里-G起到了断点调试的效果

    4.追踪命令 T

    (1)逐条指令追踪:-T[=地址] 从该地址开始执行一条指令停下来检查寄存器状态
    在这里插入图片描述
    从076D:0000 开始执行一条指令后,我们的寄存器状态如上图所示
    (2)多条指令追踪:-T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]确定。
    在这里插入图片描述
    从076D:0000 开始执行5条指令后,我们的寄存器状态如上图所示,笔者注意到,这里完成第五条指令‘MOV AX ,02’后,AX并不是变成0002,而是从076C变成了026C,这是需要注意的

    5.显示内存单元内容 D

    格式为 -D[地址]或-D[范围]
    在这里插入图片描述
    (OUTPUT.EXE的数据段寄存器DS=076C,所以我们检查这一部分内存单元的内容,这里‘123ABC’,是我们程序中在数据段定义的数据)

    6.修改内存单元内容 E

    (1)批量修改,-E 地址 内容表 将指定地址开始的内存单元中的内容替换成内容表中的内容:
    在这里插入图片描述
    (这里我们修改了数据段中的从076C:0010开始的几个字节的内容,其中1C ,8D ,‘H’,‘E’,‘L’,‘L’,‘O’各占一个字节,也就是说我们替换了076C:0010至0016总共7个字节的内容)

    (2)单个修改,-E 地址
    在这里插入图片描述
    (这里我们修改了数据段中的从076C:0016这一个字节中的内容,把它从‘O’修改成了‘P’)

    7.检查和修改寄存器内容 R

    (1)显示CPU内部所有寄存器内容和标志位状态:
    在这里插入图片描述
    参照下面的表,当前CPU标志寄存器中的含义为 OF=‘无溢出 ’DF=‘增量方向’IF=‘允许中断’ SF=‘正号’ZF=‘非零’ AF= ‘无辅助进位 ’PF=‘奇’CF= ‘无进位’

    标志位含义表
    标志名 置位 复位
    溢出Overflow(是/否) OV NV
    方向Direction(减量/增量) DN UP
    中断Interrupt(允许/屏蔽) EI DI
    符号Sign(负/正) NG PL
    零Zero(是/否) ZR NZ
    辅助进位Auxiliary Carry(是/否) AC NA
    奇偶Parity(偶/奇) PE PO
    进位Carry(是/否) CY NC

    (2)显示和修改指定寄存器的内容:
    -R 寄存器名
    例如打入:-R AX
    系统将可能响应如下:(当AX中值为FIF4时)
          AX FIF4
    表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,
    如: -R BX
          BX 0369 :059F
    则BX内容由0369改为059F
    在这里插入图片描述
    显示AX内容,按回车结束,不做修改
    在这里插入图片描述
    在这里插入图片描述
    显示BX内容,并将其修改为002B

    (3)显示和修改标志位状态:(标志位含义参见上文中的‘标志位含义表’)
          -RF
    系统将给出响应,如
          OV DN EI NG ZR AC PE CY-
    这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如
          OV DN EI NG ZR AC PE CY-PO NZ DI NV

    在这里插入图片描述
    在这里插入图片描述
    修改了OF,将OF置位

    8.命名命令 N

    -N 文件名
    此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。

    9.装入命令 L

          存盘。
    (1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:
          -L 地址 驱动器 扇区号 扇区数
    (2)装入指定文件,格式为:
          -L [地址]
    此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。在用L命令前,BX和CX中应包含所读文件的字节数。

    10.写命令 W

    (1)把数据写入磁盘的指定扇区:
          -W 地址 驱动器 扇区号 扇区数
    (2)把数据写入指定文件中:
          -W [地址]此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令前,BX和CX中应包含要写入文件的字节数。

    11.退出命令 Q

    退出DEBUG,该指令退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。
    在这里插入图片描述

    展开全文
  • debug命令参考

    2015-08-21 11:52:29
    debug命令用于调试汇编语言程序,能使用户接触到计算机内部,允许用户直接观察和修改CPU的寄存器;能观察、修改内存单元;允许直接输入机器指令并单步执行;能反汇编程序。概述讲,debug是观察和了解计算机内部运行情况...

    debug命令用于调试汇编语言程序,能使用户接触到计算机内部,允许用户直接观察和修改CPU的寄存器;能观察、修改内存单元;允许直接输入机器指令并单步执行;能反汇编程序。概述讲,debug是观察和了解计算机内部运行情况的有利助手。

    1 输入debug命令
    在win7的命令行中输入debug,就进入到虚拟8086的执行环境了。也可以输入debug + 程序名字,这就是对某个程序进行调试。

    2 r(register)命令
    从名字可以看出是对寄存器操作的命令,此指令有两个功能:一是显示所以寄存器和标记的内容,二是修改寄存器的内容。只输入r来显示寄存器的内容:


    debug总共显示3行,最底下一行是debug正要执行的命令,即cs:ip指向的命令。第一行和第二行显示了各个寄存器的值,其中第二行的最后表示的是标志寄存器中的值,从左到右分别为:溢出标志:ov(溢出),nv(未溢出);方向标志:dn(减),up(曾);中断标志:ei(启用),di(禁用);正负标志:ng(负),pl(正);零标志:zr(为零),nz(不为0);辅助进位标志:ac(进位),na(未进位);奇偶校验标志:pe(偶校验),po(奇校验);进位标志:cy(进位),nc(未进位)。
    如果想修改某个寄存器的值,直接在r后面加上要修改寄存器的名字,如:r ax ,然后回车并输入修改的值再回车就可以了。


    从上图可以看出ax的值确实改变了,不但可以改变ax的值,其它寄存器的值都可以改变,包括cs,ip的值,这是在汇编程序中所做不到的。
    3 d(dump)命令查看内存中的信息
    如果想知道10000h内存中的信息,可以用”d 段地址:段偏移地址“来查看:


    使用”d 段地址:段偏移地址“的格式,debug会列出从指定内存单元开始的128个内存单元的内容。如上图所示,在使用d 1000:0 后,debug列出了1000:0-1000:7f中的内容。
    在使用”d 段地址:段偏移地址“之后,接着使用d命令,可列出后续的内容,如下图所示:


    也可以用指定d命令的查看范围,此时采用”d 段起始地址:起始偏移地址 结尾偏移地址“的格式。比如要查看1000:0-1000:9中的内容,可以用“d 1000:0 9”实现,如下图所示:


    4 e(edit)命令改写内存中的内容
    可以用“e 起始地址 数据 数据 数据...”的格式来修改从起始地址开始的内存中的内容。比如修改10000h开始的10个单元的内容,如下图:


    也可以用e命令以提问的方式来逐个地修改从某一地址开始的内存单元中的内容,以从1000:10单元开始为例,步骤如下:
    输入e 1000:10,按enter键
    debug显示起始地址1000:0010,和第一个单元的原始内容:00,然后光标停在“.”后面提示输入想要写入的数据,此时有两种选择:一是输入数据,然后按空格键,即输入数据修改当前的内存单元;二位不输入数据,直接按空格键,则不对当前内存单元进行改写。
    当前单元处理完后(不论改写或者没有改写,只要按了空格键,就表示处理完成),debug将显示下一个内存单元的原始内容,并提示修改。
    所以希望改写的内存单元改写完成后,按enter键,e命令操作结束。
    如下图所示:


    也可以用e命令向内存单元写入字符串,比如用e命令从内存1000:0开始写入:1、“a+b”、2、“c++”、‘3’、“IBM”,如下图所示:


    5 用u(un-assembly)来反汇编机器码
    我们首先用e命令从内存1000:0单元开始写入这样一段机器码:
    机器码 对应汇编指令
    b80100 mov ax, 0001
    b90200 mov cs, 0002
    01c8   add ax, cx
    然后用u命令反汇编出这段内存中的汇编命令,如下图所示:


    6 t(trace)单步调试命令
    每输入一个t,debug就执行一条指令,然后停下了显示所有寄存器的内容。如下图所示:


    7 a(assembly)命令以汇编指令形式写指令到内存中
    前面说过可以用e命令写入机器码,但这样很不方便,必须记住机器码才行,而a命令以汇编形式写入就方便多了,“a 起始地址“表示将汇编指令写入某个地址中,如下图:


    展开全文
  • 汇编实验:DEBUG命令调试

    万次阅读 2020-05-08 12:49:55
    实验名称:DEBUG命令调试 一、实验目的及要求 二、实验环境 三、实验内容 四、实验过程 r 命令:查看寄存器的值 2.d 命令查看内存地址之中的数字 4.e命令:把给定的数据送到指定地址开始连续的内存单元 5.u...

    目录

    实验名称:DEBUG命令调试

    一、实验目的及要求

    二、实验环境

    三、实验内容

    四、实验过程

    r 命令:查看寄存器的值

    2.d 命令查看内存地址之中的数字

    4.e命令:把给定的数据送到指定地址开始连续的内存单元

    5.u命令:反汇编 ;  

    6.a 修改内存单元汇编代码

    7.  t命令:从指定地址开始执行指令

    8.g 命令:

    9.q命令:退出debug;

    五、实验体会


    西安财经大学信息学院

    实验名称:DEBUG命令调试

    一、实验目的及要求

    1.熟悉debug的 应用,为学习指令系统打好基础;

    2.利用debug观察寄存器的值;

    3.直接汇编指令,单步调试,编辑数据

    二、实验环境

    硬件环境:一台微型计算机;

    软件环境:windows 10,  dosbox,   debug环境,masm

    三、实验内容

    练习dos环境下debug命令;

    四、实验过程

    1. r 命令:查看寄存器的值

     

     

    上面就可以看到当前寄存器的状态(数值)

    当前的指令指针位于CS:IP 073F:0100

    数据段从073F0K开始

    r 如果命令带上寄存器这个参数可以修改寄存器的数值,如下将ax的数字修改成24

     

    2.d 命令查看内存地址之中的数字

    使用方法

    1. 无参数

    当不带参数的时候显示当前ds:ip内容,如过在一次执行会显示后续内容

     

    1. 段地址:偏移地址

    当参数为段地址:偏移地址时,默认显示包括该地址的后续128个字节

     

    上面显示的是1000:0 -1000:006F的地址

     

    1. 段地址:偏移地址 最大显示地址

     

    如上显示的内存单元为1000:0 - 1000:f 共十六个字节的内容

     

    4.e命令:把给定的数据送到指定地址开始连续的内存单元

    如下图,然后用d命令查询内存单元的内容,如下图,把20h送到1000:0000单元,用d命令指令查看1000:0000单元的内容为20;

     

     

     

    5.u命令:反汇编 ;  

    这个命令可以将内存区域反汇编代码之后显示,例如显示当前区域的汇编代码

    也可以通与段地址:偏移地址为参数显示,如下将1000:0段显示为汇编代码

     

    6.a 修改内存单元汇编代码

    可以加上参数段地址:偏移地址,

    一下是为a,指令将当前的代码修改成

    mov ax,2

    mov bx,3

    mov ax,bx

    add ax,bx

    add ax,1

    add ax,1

    add ax,1

    mov ax,1000

    mov ds,ax

    mov ax,2000

    mov bx,10

    mov ss,ax

    mov sp,10

    通过u命令显示反汇编代码

    7.  t命令:从指定地址开始执行指令

    也可以指定执行指令的条数,如下图,执行后显示每条指令执行完后的所有寄存器内容和标志为的状态;

    下面为执行的4中修改的命令

    mov ax,2

    mov bx,3

    mov ax,bx

    add ax,bx

    add ax,1

    add ax,1

    add ax,1

    mov ax,1000

    mov ds,ax

    mov ax,2000

    mov bx,10

    mov ss,ax

    mov sp,10

     

    8.g 命令:

    从指定地址开始执行程序,直到程序结束或遇到int3;或者是从指定的地址开始,到指定的终止地址执行;

    将2000:0内存区域的代码修改成

    mov ax,3

    mov bx,5

    mov cx,bx

    mov bx,ax

    mov ax,cx

    int 3

    ;交换ax,bx的值

    g 2000:0命令执行之后

    程序崩溃

    9.q命令:退出debug;

     

     

    五、实验体会

    在本次实验之中我学会debug的环境的命令操作,掌握了一些基本汇编命令操作,将直接汇编指令,单步调试,编辑数据操作的十分熟练。理解了8086CPU的原理。

     

     

    展开全文
  • 汇编语言Debug命令详解 DEBUG的常用命令:A,U,R,T,D,E,Q 等等 汇编语言DEBUG命令详解 R命令的使用 作用:观看和修改寄存器的值。 在提示符“-”下输入以下命令:R。DEBUG将会显示出当前所有寄存器和标志位的...
  • DEBUG命令详解

    2012-12-21 13:46:55
    DEBUG命令详解    Debug:A(汇编)  直接将 8086/8087/8088 记忆码合并到内存。  该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四个字符输入这些数值。在引用的...
  • DEBUG命令解释

    2012-06-29 22:29:47
    命令3 分隔命令参数4 指定有效地址项5 指定有效范围项6 Debug命令 6.1 Debug命令详解 7 相关资料 7.1 相关条目7.2 外部链接 DEBUG 启动 Debug,它是可用于测试和调试 MS-...
  • redis debug命令详解

    千次阅读 2016-01-26 18:44:00
    redis debug命令提供了几个非常实用的debug功能,本文介绍下redis-2.8.19下的debug命令。 debug segment 让redis发生段错误,如果开启了coredump,则会产生core文件。这个命令实现很简单,直接往一个非法地址...
  • 在windows10 64位系统上使用debug命令

    千次阅读 多人点赞 2020-03-16 17:51:36
    在windows10 64位系统上使用debug命令方法/步骤 方法/步骤 debug命令在64位操作系统中是不能使用的。在命令提示符窗口输入:debug命令,就会弹出:不是内部或外部命令,也不是运行的程序或批处理文件。的出错提示 ...
  • Debug命令解释

    千次阅读 2008-08-06 22:12:00
    DEBUG命令解释 目录1 DEBUG 2 Debug 命令 3 分隔命令参数 4 指定有效地址项 5 指定有效范围项 6 Debug 子命令 6.1 Debug 子命令详解 7 相关资料 7.1 相关条目 7.2 外部链接 if (window.showTocToggle) { var tocSho
  • Debug命令详解

    2020-12-15 10:51:41
    命令的作用是将寄存器ax的值设置为100(注意:DEBUG使用的是十六进制,这里的100相当于十进制的256。) 最后再执行r命令,观看修改后的寄存器值。 H命令的使用 H命令作用:计算两个十六进制数的和与差。 在提示符...
  • 汇编汇编(MASM debug命令

    千次阅读 2017-12-14 07:28:45
    汇编汇编(MASM debug命令)最近学习汇编语言, 在调试时命令总是忘记, 下面整理一下常用的debug命令,供后续查阅。 t: 执行CS:IP指向的指令,t命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行 p:执行...
  • 汇编的 DEBUG 命令

    千次阅读 2014-08-02 15:15:23
    R:查看、改变CPU寄存器的内容 D:查看内存中的内容 E:改写内存中的内容 ...U:将内存中的机器指令翻译成汇编指令 ...【确定】,进入到命令行窗口,并输入debug命令,如下: 回车后
  • 各种OS下的debug命令

    2016-12-13 14:19:33
    各种OS下的debug命令
  • 汇编语言Debug命令详解 DEBUG的常用命令:A,U,R,T,D,E,Q 等等 汇编语言DEBUG命令详解 文章目录 汇编语言DEBUG命令详解 R命令的使用 H命令的使用 D命令的使用 E命令的使用 F命令的使用 M命令的使用...
  • 新手求指点!!win8.1 64位 专业版 怎样运行debug命令
  • debug命令的使用

    2012-03-09 10:54:03
    cmd命令中敲入 debug弹出debug命令窗口 命令简介: r命令用于查看和修改寄存器的内容 这里只是修改基地址和偏移地址而已 d命令查看内存中的内存 例如:d CS:0160 这里的结果使用16进制表示 u...
  • 思科设备debug命令的使用

    千次阅读 2013-08-16 11:29:42
    下面列出了部分常用的debug 命令,与各协议和功能相关的更具体的debug命令和对其细节的注释,请参见本手册及命令参考手册中的各相关章节.要使用debug功能,需要在特权用户模式下进行配置: 命令 功能Switch#debug 显示...
  • 初识汇编---Debug命令

    千次阅读 2016-09-27 21:56:51
    1,汇编debug操作符:•Debug命令操作符: ▫R命令:查看、改变CPU寄存器的内容 ▫D命令:以16进制形式显示一块内存区域的内容▫E命令:改写内存中的内容 ▫A命令:以汇编指令的格式在内存中写入一条机器指令▫U...
  • DEBUG命令大全

    2009-01-06 13:53:00
    启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:][path] filename 指定... ++ 说明 使用 Debug 命令但不指定要测试的文件 如果使用没有位置和
  • Debug命令大全 

    千次阅读 2005-12-10 12:14:00
    Debug启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:][path] filename 指定... ++说明使用 Debug 命令但不指定要测试的文件 如果使用没有位
  • DEBUG命令 调试 汇编语言程序

    千次阅读 2012-09-19 12:57:46
    DE BUG命令 调试 汇编语言程序   转载▼ 一.如何启动debug命令?  在运行栏里键入: ... 调试 汇编语言程序" title="DEBUG命令 调试 汇编语言程序" style="margin:0px; padd
  • Debug 命令详解

    千次阅读 2005-11-13 01:55:00
    Debug 启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:][path] filename 指定要测试的可执行... ++ 说明 使用 Debug 命令但不指定
  • 汇编语言调试DEBUG命令

    千次阅读 2013-01-06 10:44:57
    汇编语言调试DEBUG命令  2007-06-04 21:07:16| 分类: 其他 | 标签:心情  |字号大中小 订阅   1、显示命令D  ① D [地址]  ② D [范围] 如不指定范围,一次显示8行×16个...
  • Debug命令大全

    千次阅读 2005-04-12 22:47:00
    Debug启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:][path] filename 指定... ++说明使用 Debug 命令但不指定要测试的文件 如果使用没有位
  • 启动DEBUG 1.打开Windows命令窗口 在Windows 95/98的环境中,打开命令窗口的步骤为:点击“开始”→“运行”,...在命令窗口中启动DEBUG,启动命令一般为:DEBUG [文件名] [参数表]。其中:文件名指定被调试的文件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 383,733
精华内容 153,493
关键字:

debug命令