彙編程序的編輯、編譯、連接與執行(附帶DOSBox安裝)

若沒有下載的小夥伴可以參考這篇文章下載,裏面有很多設置也非常不錯
Windows 64 位系統下安裝配置 DOSBox 及 debug.exe

首先介紹倆種方法來編譯源程序

方法一:

step1:編輯源程序

1、打開DosBox
在這裏插入圖片描述2、運行edit
在命令行輸入

edit

在這裏插入圖片描述
3、在Edit中編譯程序,如下圖所示(隨便舉了一個例子)
在這裏插入圖片描述3.1 File->save as
在這裏插入圖片描述3.2 輸入你要保存的文件名,以asm後綴結尾,之後點擊OK
在這裏插入圖片描述3.3 點擊File->exit來退出edit

4、再進行完上述對源程序的編輯之後,會得到一個源程序文件D:\software\DOSBox\MASM\hui.asm
在這裏插入圖片描述接下來進行編譯源程序

step2:編譯

1、進入DOS,運行masm.exe,會出現一些版本信息
在這裏插入圖片描述上面我命名爲hui,擇需要輸入hui即可,如果不是以.asm爲擴展名的話,擇需要輸入全名,比如“hui.txt"

2、輸入要編譯的源程序文件名後,按enter鍵

注:若我們當前已經再源文件目錄下,直接輸入文件名就行,要是是再其他路徑中,則要輸入完整路徑
在這裏插入圖片描述
執行完後生成hui.obj文件
在這裏插入圖片描述
在這裏插入圖片描述

這個列表文件不生成,直接Enter
在這裏插入圖片描述

同樣先不用生成教程引用文件
在這裏插入圖片描述

step3:連接

對源程序進行編譯得到目標文件後,我們需要對目標文件進行連接,從而可以得到可執行文件,接下來我們要將.obj文件連接爲.exe文件

1、運行link後,直接輸入文件名
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
2、默認可執行文件名(當然在這裏也可以指定文件名或者路徑),按enter
在這裏插入圖片描述
3、提示生成映像文件,這裏不生成,按enter
在這裏插入圖片描述
4、這裏提示輸入庫文件名,若調用子程序則要輸入庫文件名,這裏沒有調用,直接enter

在這裏插入圖片描述
注:這裏有一個警告:沒有棧段,先不用管

偷懶方法!以簡化方式進行編譯和連接

masm後面要加上被編譯的源程序文件的路徑,文件名,再加上分號,此時生成hui.obj文件
在這裏插入圖片描述
link後面要加上被連接的源程序文件的路徑,文件名,再加上分號,此時生成hui.exe文件
在這裏插入圖片描述

方法二
新建一個.txt文件,在裏面進行編碼,相當於上面的edit步驟
在這裏插入圖片描述編碼完成後進行保存,並修改後綴名爲.asm,注意文件應該在MASM路徑下,其餘步驟和方法一 一樣。

EXE文件的執行

  • 在DOS中直接執行hui.exe時,是正在運行的command,將hui.exe中的程序加載入內存
  • commond設置CPU的CS:IP指向程序的第一條指令,從而使程序得以運行
  • 運行結束後,返回到commond中,CPU將繼續運行commond

程序執行過程的跟蹤,以hui.exe爲例
1、使用debug將程序載入內存
在這裏插入圖片描述
2、使用R命令來查看各個寄存器的設置情況(關於debug命令,參考這篇博客
在這裏插入圖片描述
3、使用U命令查看其他指令
在這裏插入圖片描述4、現在開始跟蹤,使用T命令進行單步執行每一條指令
在這裏插入圖片描述5、到了int 21 用P 命令執行
在這裏插入圖片描述
6、使用q命令退出debug,回到commond中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章