如何用機器指令和彙編指令編程
本文參考 彙編語言(第三版),這個地方出現了了一個小插曲,小編使用的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