汇编语言——dosbox的相关操作

安装准备

在这里下载完了之后,在C盘根目录下(比较方便,爱建哪建哪)创建名为dosbox的文件夹,里面放好debug、edit、link、masm等工具。打开dosbox会见到如下图所示的界面:
汇编语言——dosbox的相关操作
之后需要挂载工作目录,输入mount C C:\dosbox(刚才的目录)
汇编语言——dosbox的相关操作
之后再输入C:即可
汇编语言——dosbox的相关操作
再输入debug就可以进入debug模式。
汇编语言——dosbox的相关操作

debug相关操作

总览

  • R命令:查看、改变CPU寄存器的内容
  • D命令:查看内存中的内容
  • E命令:改写内存中的内容
  • U命令:将内存中的机器指令翻译成汇编指令
  • T命令:执行一条机器指令
  • A命令:以汇编指令的格式在内存中写入一条机器指令

R命令

-r : 直接查看寄存器中的内容

汇编语言——dosbox的相关操作

-r [寄存器名] : 修改寄存器中的值

汇编语言——dosbox的相关操作
输完之后会弹出该寄存器当前存储的值,下面会有一个冒号,在里面输入数据即可改变寄存器的值,比如输入0001再用-r查看:
汇编语言——dosbox的相关操作

D命令

-d : 查看内存中的内容

汇编语言——dosbox的相关操作
随后再使用-d命令看的就是下一段内存里的内容。其他D指令也同理

-d 段地址:偏移地址 : 查看指定地址后的内容

汇编语言——dosbox的相关操作

-d 段地址:偏移地址1 偏移地址2 : 查看指定地址段的内容

汇编语言——dosbox的相关操作

E命令

-e 段地址:偏移地址 : 修改内存中的内容

直接连续修改

直接将要添加进去的数据写在段地址:偏移地址后面,如图
汇编语言——dosbox的相关操作

以提问的方式逐个修改

输完-e 段地址:偏移地址之后换行,之后会逐个跳出来该内存原本存放的内容,在.后面填写想要变更成的内容。按空格键继续填写下一个,按enter键结束修改
汇编语言——dosbox的相关操作

写入字符

如果想写进去的是字符,只需要加一个‘’即可,如下图
汇编语言——dosbox的相关操作
我们可以看到加了引号的几个元素被存进去的是它们的ascII码而不是原本的数值了。

U指令

-u 段地址:偏移地址 : 将机器码翻译成汇编代码

先用-e写入一段机器码。下面是它的涵义:

机器码 对应的汇编指令
b80100 mov ax,0001
b90200 mov cx,0002
01c8 add ax,cx

接下来用-u查看这段机器码的汇编指令
汇编语言——dosbox的相关操作

T指令

-t : 执行CS:IP指向的指令

还是上面那段汇编码,首先我们得把CS:IP指向写入代码的1000:0(利用之前的-r指令)
汇编语言——dosbox的相关操作
接下来就可以用-t指令来执行这段汇编代码,而且每次都会显示执行完各个寄存器的结果。
汇编语言——dosbox的相关操作

A指令

-a 段地址:偏移地址 : 向指定地址写入汇编代码

输完一行按enter键,全部输完按两次enter键即可
汇编语言——dosbox的相关操作
如图所示用-a指令写完汇编代码之后再用-u查看
先改变CS:IP再执行这段汇编代码的结果:
汇编语言——dosbox的相关操作
汇编语言——dosbox的相关操作