版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、引子由于這些日子一直都在研究底層的技術(shù),從 Windows 驅(qū)動程序,到 Windows 內(nèi)核等等技術(shù)的學習,讓我對底層的技術(shù)越發(fā)有興趣了,而剛好,在研究 WRK 時,對內(nèi)存管理,寄存器,地址總線,數(shù)據(jù)總線,控制總線等的理解不夠透徹,所以越發(fā)的想學習匯編程序設(shè)計來提升功力,而由于近來在公司里一直都有項目壓著,所以在公司里也實在不好拿本匯編程序設(shè)計看,所以只好晚上回來學習了, 匯編看了幾個晚上,也算是蠻有感覺的。今天就先來搭個開發(fā)環(huán)境再說吧。開發(fā)環(huán)境搭配我介紹四種開發(fā)匯編程序的方式:第一種:直接在 Dos 環(huán)境下使用 Edit 命令調(diào)出源碼編輯框,生成源碼后,可以使用由微軟提供的 masm 匯編
2、編譯器來對源碼進行編譯,編譯完后再使用 Linker 連接器即可得到可執(zhí)行文件,這種方式現(xiàn)在幾乎被滅絕了(當然使用 masm 匯編編譯器還是很普遍的),除非你真要在 DOS 環(huán)境下運行匯編程序;第二種:通過簡化第一種方式而來;第三種:直接使用 Masm for Windows 集成實驗環(huán)境,這個開發(fā)環(huán)境呢,非常適合匯編語言的初學者,因為這個 IDE 本身就是由一些從事匯編程序教學的大學老師開發(fā)的出來用于匯編初學者進行學習和實驗的,所以使用簡單,方便,這里可以對這個 IDE 稍加推薦;第四種:則是通過 Visual Studio 這個強大的 IDE 來實現(xiàn)匯編程序的編譯,運行和調(diào)試,至于 Vis
3、ual Studio 就不多做介紹了,.Net 用了這么多年,這東西強大到什么程度那是總所周知的;第一種方式:使用 Edit + MASM 5.0 編譯器 + Linker 連接器其實這種方式是很簡單的,只是很麻煩,因為簡單而且麻煩,所以我采用盡可能的將截圖傳上來,然后稍加注解的方式進行介紹,軟件準備:需要 MASM 5.0 或者以上的匯編編譯器首先,是要編輯匯編源代碼:其實對于源碼的編輯根本不需要向如下這么麻煩,直接拿個記事本就 OK 了運行 cmd 命令輸入 Edit 命令從而彈出匯編源碼編輯框在源碼輸入框中輸入?yún)R編源碼將編輯好的匯編源碼保存到 xx.asm 文件中然后就是要編譯編輯好的匯
4、編源代碼在 Dos 環(huán)境下進入到 MASM 5.0 匯編編譯器所在的目錄然后運行 masm.exe 可以從上面的截圖中看到 . ASM 的標記,這個標記代表的是需要在這里輸入要編譯的源程序文件名,這里有一點特別的是,由于默認的文件擴展名為 .asm ,所以在編譯 .asm 的匯編源程序時可以不用指定源程序所在文件的擴展名。我們將一開始編輯好的匯編源程序所在的文件輸入以進行編譯指定文件所在路徑后按 Enter 鍵此時可以看到編譯器提示需要輸入要編譯出的目標文件的名稱,由于在一開始已經(jīng)指定了 BoyXiao. asm ,所以編譯器自動指定了目標文件的名稱為 BoyXiao. obj 的名稱,如果在
5、這里不做修改的話,則編譯器會以默認目標文件名稱 BoyXiao. obj 進行輸出,在這里我并不改變名稱,所以直接按 Enter 鍵即可此時又提示需要輸入列表文件的名稱,其實是完全可以不要讓編譯器生成這個 LST 文件的,所以也不需要進行輸入,直接按 Enter 鍵即可此時又提示需要輸入交叉引用文件的名稱,這里也完全可以不要讓編譯器生成這個 CRF 文件,所以也不需要進行輸入,直接按 Enter 鍵即可至此,匯編源程序編譯成功,編譯得到的結(jié)果就是在我的 E:ToolsMASMMASM 5.0 目錄下生成了一個 BoyXiao.obj 文件下面就是要實現(xiàn)對目標文件的連接經(jīng)過編譯操作后,我們得到了
6、一個 .obj 的目標文件,但很顯然,這還并不是一個可執(zhí)行文件,下面就需要對目標文件進行連接,從而得到一個可執(zhí)行文件。一般來說,需要準備一個連接器,這里我使用的是微軟提供的 Linker 連接器,即 LINK.EXE ,進入 LINK.EXE 文件所在目錄,直接運行 LINK.EXE 此時提示需要輸入被連接的目標文件的名稱,這里也就是 BoyXiao.obj ,由于我的 BoyXiao.obj 和 Link.exe 在同一目錄下,所以不需要指定路徑,直接給出 .obj 的名稱即可,按 Enter 鍵這里提示需要輸入要生成的可執(zhí)行文件的名稱,此時如果想要將可執(zhí)行文件輸入到指定目錄下,則需要指定目
7、錄,否則只需要指定名稱即可,并且可以看到名稱已有默認值:BOYXIAO.EXE在這里我選擇默認值,所以直接按 Enter 鍵即可按 Enter 鍵又繼續(xù)提示需要輸入映像文件的名稱,在這里,不需要生成這個文件,所以直接按 Enter 鍵即可此時又提示需要輸入庫文件的名稱,由于我們的這個程序中沒有使用任何的子程序,也就是根本沒有調(diào)用什么庫文件,所以這里也可以直接按 Enter 鍵處理至此,整個目標文件的連接工作結(jié)束,得到的結(jié)果是一個 EXE 文件執(zhí)行匯編程序其實執(zhí)行起來是看不到什么結(jié)果的,因為上面的匯編代碼沒有輸出任何內(nèi)容,而只是改變了幾個寄存器的值而已,自然也就看不到任何的輸出了。第二種方式:使
8、用 Edit + MASM 5.0 編譯器 + Linker 連接器 (簡化版)這種方式其實和第一種方式說不上有什么區(qū)別,只不過在編譯和連接過程中使用了很多編譯器和連接器的默認設(shè)置而已軟件準備:和第一種方式一樣編輯匯編源代碼:和第一種方式一樣,也可以是直接使用文本編輯器編輯即可編譯編輯好的匯編源代碼直接到 MASM.EXE 文件目錄,然后直接使用 masm 編譯指定路徑的文件即可特別注意的是,需要在目錄的后面加上 “;”同樣在 E:ToolsMASMMASM 5.0 目錄下生成了 BoyXiao.obj 目標文件實現(xiàn)目標文件的連接同樣,直接下到連接器 LINK.EXE 文件所在的目錄,然后直接
9、使用 LINK 連接指定的目標文件即可同樣需要注意在目錄或文件名的后面加上 “;”可以看到連接成功了,從而生成了可執(zhí)行文件,當然這個可執(zhí)行文件運行的效果和第一種方式中一樣,即看不到任何輸出第三種方式:MASM For Windows 集成開發(fā)環(huán)境上面的兩種方式都顯得非常麻煩,編譯了還要連接,誰有那么多時間去浪費啊,所以,下面介紹的這個 MASM For Windows 集成開發(fā)環(huán)境就顯得非常有優(yōu)勢了,軟件準備:MASM For Windows 集成開發(fā)環(huán)境,我這里使用的是 2010 版本,大小 15.5 MB實現(xiàn) HelloWorld直接打開 MASM For Windows 集成開發(fā)環(huán)境,然
10、后找到范例程序,然后直接運行即可可以看出,使用這個東東確實會方便很多很多第四種方式:使用 Visual Studio 來實現(xiàn)開發(fā)匯編程序軟件準備:既然是使用 Visual Studio 來開發(fā)了,自然就需要 Visual Studio IDE 了,在這里呢,我使用的是 Visual Studio 2010 ,當然 2008 和 2005 都是可以的,只不過在一些設(shè)置上有些許區(qū)別而已,在這里,我也不做區(qū)分,大家感興趣的可以去網(wǎng)上淘一大把,然后就是<<Intel 匯編語言程序設(shè)計>>中的 Irvine 包,這個在網(wǎng)上也有一大把VS 2010 設(shè)置:在 VC+ 中新建一個空項目,取名為 Test定制 VC+ 工程構(gòu)建規(guī)則設(shè)置完 VC+ 生成自定義項文件后,再添加一個 C+ 文件,并注意取名時后綴名記為 .asm 設(shè)置 VC+ 工程的項目屬性需要添加庫路徑,這里的庫路徑指的是 <<Intel 匯編語言程序設(shè)計>> 中的 Irvine 庫設(shè)置包含路徑設(shè)置依賴庫文件,添加 Irvine32.lib設(shè)置項目輸出設(shè)置生成匯編代碼列表,添加 $(ProjectName).lst 屬性Hello World 程序:直接運行即
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人抵押借款簡單合同(2024版)
- 二零二五版電子數(shù)碼產(chǎn)品門店承包經(jīng)營合同4篇
- 2025年度紡織行業(yè)原材料電商直采服務(wù)合同3篇
- 馬鈴薯購銷2025版:年度種植收購合同2篇
- 二零二五版苗圃場技術(shù)員園藝栽培技術(shù)聘用合同4篇
- 情感溝通解決客戶投訴的關(guān)鍵技巧
- 長春科技學院《健“聲”》2023-2024學年第一學期期末試卷
- 長春工程學院《大學基礎(chǔ)讀寫4》2023-2024學年第一學期期末試卷
- 二零二五版車輛抵押反擔保車輛租賃擔保協(xié)議2篇
- 二零二五版房地產(chǎn)開發(fā)與文化藝術(shù)合作協(xié)議3篇
- AQ6111-2023個體防護裝備安全管理規(guī)范
- 2024年高考語文備考之??甲骷易髌罚ㄏ拢褐袊F(xiàn)當代、外國
- T-CSTM 01124-2024 油氣管道工程用工廠預制袖管三通
- 2019版新人教版高中英語必修+選擇性必修共7冊詞匯表匯總(帶音標)
- 新譯林版高中英語必修二全冊短語匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預測研究
- 河道保潔服務(wù)投標方案(完整技術(shù)標)
- 品管圈(QCC)案例-縮短接臺手術(shù)送手術(shù)時間
- 精神科病程記錄
- 閱讀理解特訓卷-英語四年級上冊譯林版三起含答案
- 清華大學考博英語歷年真題詳解
評論
0/150
提交評論