debug与DOSBox安装&&debug命令操作

文章目录

  • 一. DOSBox && debug使用
        • 1.安装配置(以下方法们按照从麻烦到简便的顺序)
            • (1) 多步骤(可行,但不推荐)
            • (2)一步到位(强烈推荐
        • 2. 窗口大小
  • 二. debug两种状态
  • 三.debug命令及操作
    • ? :查看文档
    • A :逐步汇编
        • 1.不给地址的话,默认为0101或者当前的IP地址
        • 2.从给定地址adress开始输入汇编语句,把语句汇编成机器代码依次存放在给定地址开始的存储器
    • R : read&&write register显示和修改寄存器
        • 1.显示寄存器状态
        • 2.修改寄存器
    • U : 反汇编
        • 1.若省略地址,从上一个U命令的最后一个指令的下一个单元开始显示32个字节。
        • 2.若只给起始地址,只对20H个字节的机器代码反汇编显示
        • 3.若给定始末地址,对指定地址的机器代码反汇编显示
    • D : 以十六进制显示内存区域的内容
        • 1.若未给出范围,默认为128字节存储单元。
        • 2.若给出一个特定地址,则显示对应的存储单元的内容
        • 3.若给定一个查看范围,则显示范围内的储存单元们的内容
        • 4.若给定起点和长度,长度以参数L为标识,则从起点开始显示规定长度的内容
    • E : 改变内存单元的内容
        • 1.若只给出地址,可改变对应地址开始的连续的一个至八个字节
        • 2.若给出地址以及一个或多个数据,可连续修改内存中的内容
    • T:单步执行
        • 1.若不给任何参数,则从CS : IP 开始执行
        • 2.若给出地址,不给出指令数参数,则在指定地址的指令执行后,不再执行,并显示寄存器状态
        • 3.若指定地址和指令数,则从指定地址开始执行对应的指令数量
    • G : 连续执行
        • 1.若不给出任何参数,则从当前物理地址开始运行,直到运行终止指令才停止
        • 2.若只给出起始地址,则从指定地址开始运行,直到运行终止指令才停止
        • 3.若给定起始地址和断点地址,则从指定地址开始运行,运行到断点结束
    • P : 执行汇编程序,单步跟踪。与T命令不同的是:P命令不会跟踪进入子程序或软中断。

一. DOSBox && debug使用

DOSBox下载 : https://sourceforge.net/projects/dosbox/files/dosbox/0.74-2/DOSBox0.74-2-win32-installer.exe/download
debug下载链接:https://pan.baidu.com/s/1c1rph04y4ZAZrTQfZJuazA
提取码:bxcc

1.安装配置(以下方法们按照从麻烦到简便的顺序)

(1) 多步骤(可行,但不推荐)
  • 打开DOSBox
    • 输入自定义的驱动器盘符X ,以及你DOSBox的路径: mount X Y:……
    • 回车,输入你刚才定义的驱动器盘符
    • 进入X盘之后,你就可以开始调试模式啦,bingo(怎么调试待会再说呀~)
      debug与DOSBox安装&&debug命令操作_第1张图片
  • 直接把debug拖进DOSBox中,即点住debug后不放拖到DOSBox应用程序上

此时会出现用DOSBox打开的提示字样

(2)一步到位(强烈推荐

双击打开DOSBox文件目录中的 DOSBox 0.74-2 Options
debug与DOSBox安装&&debug命令操作_第2张图片
在文件末尾,可以看到[autoexec]区段,在最后加入咱上个方法输入的东西,

MOUNT X Y:……
X:

debug与DOSBox安装&&debug命令操作_第3张图片

Ctrl + S保存一下之后,再次打开DOSBox自动挂载到指定驱动盘符,直接输入debug指令就OK啦
debug与DOSBox安装&&debug命令操作_第4张图片

2. 窗口大小

配置完这个新朋友很开心,可是定睛一看,这么小的窗口,还不能调大小?!
有点子不友善哇,让我们来调教一下这个小妖精~
方法来自贴吧大神https://tieba.baidu.com/p/2150370425?red_tag=0020431408

依然是找到DOSBox里的DOSBox 0.74-2 Options
debug与DOSBox安装&&debug命令操作_第5张图片找个区段,添加以下代码


[sdl]
fullscreen=false
fulldouble=false
fullresolution=original
windowresolution=1080x800
output=opengl
autolock=true
sensitivity=100
waittrue
priority=higher,normal
mapperfile=mapper-0.74.map
usescancodes=true

[render]

frameskip=0
aspect=false
scaler=normal2x

可以在windowresolution里调你想要的分辨率
debug与DOSBox安装&&debug命令操作_第6张图片

二. debug两种状态

  • 接收debug命令的状态
  • 命令下的相关操作状态
    两者之间切换用shift

三.debug命令及操作

  • 确定与退出都按回车键
  • 建议初学者不要对CS、IP、SS、SP中的内容进行修改
  • "-"为提示符
  • 89D8 H = MOV AX,BX
  • 修改一个按回车,修改多个按空格
  • HLT:暂停,涉及到硬件处理

? :查看文档

首先让我们打个“?”,看看都有啥指令
debug与DOSBox安装&&debug命令操作_第7张图片一共才二十来个指令,而常用指令有才六个~

A :逐步汇编

assemble汇编: 以汇编的形式在内存中输入一条机器指令
ps:起始的偏移地址一定为0100
debug与DOSBox安装&&debug命令操作_第8张图片

A [adress]

[ ]表示其中的内容可省略

1.不给地址的话,默认为0101或者当前的IP地址

2.从给定地址adress开始输入汇编语句,把语句汇编成机器代码依次存放在给定地址开始的存储器

eg:

  • 用A命令分别把0001,0002送到AX,BX中,再AX = AX + BX
  • 再用D命令显示下结果
    //D命令显示相应内存的内容
  • 用U命令反编译,把机器代码翻译为汇编语句
    //U : 反汇编反汇编,即把机器指令翻译成字节码显示
    debug与DOSBox安装&&debug命令操作_第9张图片
    debug与DOSBox安装&&debug命令操作_第10张图片

R : read&&write register显示和修改寄存器

1.显示寄存器状态

在这里插入图片描述debug与DOSBox安装&&debug命令操作_第11张图片
这实在是很心酸的一张照片哩,鉴于笔者的后置像素太渣,
还是借助外援拍图后期修改的,呜呜┭┮﹏┭┮

2.修改寄存器

-R 寄存器名称

eg:修改AX的值,AX从0000变为我们指定的0001
debug与DOSBox安装&&debug命令操作_第12张图片

U : 反汇编

unssemble反汇编:把机器代码反汇编显示

-U [地址]

1.若省略地址,从上一个U命令的最后一个指令的下一个单元开始显示32个字节。

debug与DOSBox安装&&debug命令操作_第13张图片

2.若只给起始地址,只对20H个字节的机器代码反汇编显示

debug与DOSBox安装&&debug命令操作_第14张图片

3.若给定始末地址,对指定地址的机器代码反汇编显示

debug与DOSBox安装&&debug命令操作_第15张图片

D : 以十六进制显示内存区域的内容

dump

-D[地址或范围]

1.若未给出范围,默认为128字节存储单元。

从左至右依次是:
段地址:偏移地址 以十六进制的形式显示内存值   以ASCII码的形式显示内存值
debug与DOSBox安装&&debug命令操作_第16张图片

其中 物理地址=段地址 × 16D + 偏移地址,16D也就是左移四位

2.若给出一个特定地址,则显示对应的存储单元的内容

debug与DOSBox安装&&debug命令操作_第17张图片

3.若给定一个查看范围,则显示范围内的储存单元们的内容

在这里插入图片描述

4.若给定起点和长度,长度以参数L为标识,则从起点开始显示规定长度的内容

-D[起点][L长度]

在这里插入图片描述

E : 改变内存单元的内容

enter

-E 地址 [内容]

注意哦ヾ(●´∀`●) 像地址只要的不带[]的参数,必须有!
otherwise,看error来找你叙旧~

在这里插入图片描述

1.若只给出地址,可改变对应地址开始的连续的一个至八个字节

debug与DOSBox安装&&debug命令操作_第18张图片debug与DOSBox安装&&debug命令操作_第19张图片

2.若给出地址以及一个或多个数据,可连续修改内存中的内容

debug与DOSBox安装&&debug命令操作_第20张图片

T:单步执行

trace
执行执行以cs:ip开始的一条或n条机器指令,并显示寄存器的内容

-[=地址][指令数]

notes : 地址前面的等于不可省,即如果给出地址参数,则一定要在地址前面加上等于
否则,error来找你叙旧~

1.若不给任何参数,则从CS : IP 开始执行

debug与DOSBox安装&&debug命令操作_第21张图片

2.若给出地址,不给出指令数参数,则在指定地址的指令执行后,不再执行,并显示寄存器状态

debug与DOSBox安装&&debug命令操作_第22张图片

3.若指定地址和指令数,则从指定地址开始执行对应的指令数量

debug与DOSBox安装&&debug命令操作_第23张图片

G : 连续执行

go 连续执行机器指令

-G [=起始地址][断点地址]

1.若不给出任何参数,则从当前物理地址开始运行,直到运行终止指令才停止

遇不到就会卡死在这里……
在这里插入图片描述

2.若只给出起始地址,则从指定地址开始运行,直到运行终止指令才停止

debug与DOSBox安装&&debug命令操作_第24张图片

3.若给定起始地址和断点地址,则从指定地址开始运行,运行到断点结束

debug与DOSBox安装&&debug命令操作_第25张图片

P : 执行汇编程序,单步跟踪。与T命令不同的是:P命令不会跟踪进入子程序或软中断。

P命令的使用方式与T命令的使用方式完全相同。
执行循环、重复的字符串指令、软件中断或子例程序。
#持续更新ing

你可能感兴趣的:(汇编原理)