如何用机器指令和汇编指令编程
本文参考 汇编语言(第三版),这个地方出现了了一个小插曲,小编使用的win10,进行debug,结果发现不可以。网上搜了一下参考方法 觉得方法好麻烦,于是我直接装了一个 win7 x86 的虚拟机(注意:按照win7 x64的同样不可以,据说 win7之后,微软就把DOS从系统从去除了)
1、预备知识 Debug的使用
前面介绍了小编解决 win10不能 debug的问题,方法不重要,能debug就可以。
这个我就默认大家明白了debug的意思了,不做解释。
Debug 功能(前提基础)
Debug 的命令有 20多个,目前先介绍用到的几个
- R 查看、改变CPU 寄存器的内容
- D 查看内存中的内容
- E 改写内存中的内容
- U 将内存中的机器指令翻译成汇编指令
- T 命令执行一条机器指令
- A 以汇编指令的格式在内存中写入一条机器指令
2、演示
进入debug 界面
-
R 查看、改变CPU 寄存器的内容
- 查看寄存器中的内容
- 修改寄存器中的内容 ( 修改AX的值)
这个仅仅只是个例子,比如想修改 CS、IP、BX等 都是可以的
-
T 命令执行一条机器指令
执行 CS:IP 对应的命令
- 修改CS
- 修改IP
- 执行一条机器指令 (ADD AX CF80)
- 查看 AX结果 1111H + CF80H = E091
-
D 查看内存中的内容机器指令
-
U 将内存中的机器指令翻译成汇编指令
-
A 以汇编指令的格式在内存中写入一条机器指令
E 改写内存中的内容E是使用机器指令 代替汇编,这里不再演示,感兴趣的小伙伴可以试试👍
查看
修改 CS:IP 并执行对应命令
下面就是连续执行 T ,就可以得到最终结果,这里不再详细展示
7.退出 quit