汇编语言——dosbox的相关操作
dosbox相关操作
安装准备
在这里下载完了之后,在C盘根目录下(比较方便,爱建哪建哪)创建名为dosbox的文件夹,里面放好debug、edit、link、masm等工具。打开dosbox会见到如下图所示的界面:
之后需要挂载工作目录,输入mount C C:\dosbox
(刚才的目录)
之后再输入C:
即可
再输入debug
就可以进入debug模式。
debug相关操作
总览
- R命令:查看、改变CPU寄存器的内容
- D命令:查看内存中的内容
- E命令:改写内存中的内容
- U命令:将内存中的机器指令翻译成汇编指令
- T命令:执行一条机器指令
- A命令:以汇编指令的格式在内存中写入一条机器指令
R命令
-r : 直接查看寄存器中的内容
-r [寄存器名] : 修改寄存器中的值
输完之后会弹出该寄存器当前存储的值,下面会有一个冒号,在里面输入数据即可改变寄存器的值,比如输入0001再用-r
查看:
D命令
-d : 查看内存中的内容
随后再使用-d
命令看的就是下一段内存里的内容。其他D指令也同理
-d 段地址:偏移地址 : 查看指定地址后的内容
-d 段地址:偏移地址1 偏移地址2 : 查看指定地址段的内容
E命令
-e 段地址:偏移地址 : 修改内存中的内容
直接连续修改
直接将要添加进去的数据写在段地址:偏移地址
后面,如图
以提问的方式逐个修改
输完-e 段地址:偏移地址
之后换行,之后会逐个跳出来该内存原本存放的内容,在.
后面填写想要变更成的内容。按空格
键继续填写下一个,按enter
键结束修改
写入字符
如果想写进去的是字符,只需要加一个‘’
即可,如下图
我们可以看到加了引号的几个元素被存进去的是它们的ascII码而不是原本的数值了。
U指令
-u 段地址:偏移地址 : 将机器码翻译成汇编代码
先用-e
写入一段机器码。下面是它的涵义:
机器码 | 对应的汇编指令 |
---|---|
b80100 | mov ax,0001 |
b90200 | mov cx,0002 |
01c8 | add ax,cx |
接下来用-u
查看这段机器码的汇编指令
T指令
-t : 执行CS:IP指向的指令
还是上面那段汇编码,首先我们得把CS:IP指向写入代码的1000:0(利用之前的-r
指令)
接下来就可以用-t
指令来执行这段汇编代码,而且每次都会显示执行完各个寄存器的结果。
A指令
-a 段地址:偏移地址 : 向指定地址写入汇编代码
输完一行按enter
键,全部输完按两次enter
键即可
如图所示用-a
指令写完汇编代码之后再用-u
查看
先改变CS:IP再执行这段汇编代码的结果: