语雀原文链接
文章目录
- 1、安装DOSBox
- 2、Debug
- 进入Debug
- r
- d
- e
- a
- u
- t
- q
1、安装DOSBox
- 官网下载下载地址:https://www.dosbox.com/download.php?main=1
- 此处直接下载这个附件(内部有8086的DEBUG.EXE环境)8086汇编工作环境.rar
- 执行安装DOSBox0.74-win32-installer.exe,安装完成打开应用出现以下界面
- 将MASM拷贝到非C盘的目录下,例如此处是d:\IT\MASM
- 在DOSBox的串口输入以下命令(d:\IT\MASM 和上一步复制的目录是一样的),出现上图中的字符表示成功
// 这里大致意思就是将这个d:\IT\MASM目录作为c盘挂载起来
C:\>mount c d:\IT\MASM
Drive C is mounted as local directory d:\IT\MASM\C:\>c:C:\>debug
- Mac系统下也是一样的操作
2、Debug
- 使用Debug程序,可以查看CPU各种寄存器中的内容、内存的情况,并且在机器指令级跟踪程序的运行
- R命令:查看、改变CPU寄存器的内容
- D命令:查看内存中的内容
- E命令:改变内存中的内容
- U命令:将内存中的机器指令翻译成汇编指令
- A命令:以汇编指令的格式在内存中写入机器指令
- T命令:执行机器指令
进入Debug
- 实际就是运行D:\IT\MASM\DEBUG.EXE
r
- 写法1:-r
- 作用:查看寄存器内容
- 写法2:-r 寄存器名字
- 作用:改变寄存器内容
d
- 写法1:-d
- 作用:查看预设地址内存处128个字节的内容
- 2000:0080,段地址2000,偏移地址0080,表示的物理地址是20080
- 2000:0090,表示的物理地址是20090
- 这两行之间有16个内存单元(20080~2008F),每个内存单元一个字节,8位二进制,2位16进制,就是第一行16个字节的00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
- 写法2:-d 段地址:偏移地址
- 作用:查看指定地址的内容,此处查看的是2222的内容,前面的两个2220 2221显示空了
- 写法3:-d 段地址:偏移地址开始 偏移地址结束
- 作用:查看指定地址范围的内容
- 写法4:连续使用d
- 作用:可以列出后续的内容
e
- 用法1:-e 段地址:偏移地址 数据1 数据2
- 作用:批量修复数据
- 用法2:-e 段地址:偏移地址
- 逐个询问式修改
- 空格表示接受,继续修改
- 回车表示结束
- 作用:逐个修改数据
- 用法3:写入字符
- 用法3:写入字符串
a
- 写法1:-a 段地址:偏移地址
- 作用:以汇编指令的格式在内存中写入机器指令
- 此处写入的地址是:073f:0100,对应CS IP
- mov ax,0123
- mov bx,0003
- mov ax,bx
- add ax,bx
u
- 写法1:-u 段地址:偏移地址
- U命令:将内存中的机器指令翻译成汇编指令
t
- 写法:-t
- 作用:执行CS:IP处的指令,逐条执行,每执行一条,IP寄存器偏移一次
- 执行上述的几条命令
- mov ax,0123
- mov bx,0003
- mov ax,bx
- add ax,bx
q
- 退出debug