終于可以編寫第1個(gè)完整的程序了,以前都是在debug中寫一些指令,在debug中執(zhí)行。
現(xiàn)在開(kāi)始編寫完整的匯編語(yǔ)言程序,用編譯器將它們編譯成為可執(zhí)行文件,在操作系統(tǒng)中運(yùn)行。
為了能夠透徹地理解一個(gè)完整的程序,我們將經(jīng)歷一個(gè)漫長(zhǎng)的過(guò)程。
一個(gè)源程序從寫出到執(zhí)行的過(guò)程
第一步,編寫匯編源程序
使用文本編輯器,如editplus,notepad2等
第二步,對(duì)源程序進(jìn)行編譯連接
使用匯編語(yǔ)言編譯程序?qū)υ闯绦蛭募械脑闯绦蜻M(jìn)行編譯,產(chǎn)生目標(biāo)文件;再用連接程序?qū)δ繕?biāo)文件進(jìn)行連接,生成可在操作系統(tǒng)中直接運(yùn)行的可執(zhí)行文件。
可執(zhí)行文件中包含兩部分內(nèi)容:
1)程序(從源程序中的匯編指令翻譯過(guò)來(lái)的機(jī)器碼)和數(shù)據(jù)(源程序中定義的數(shù)據(jù))
2)相關(guān)的描述信息(比如,程序有多大、要占用多少內(nèi)存空間等)
第三步,執(zhí)行可執(zhí)行文件中的程序
在操作系統(tǒng)中,執(zhí)行可執(zhí)行文件中的程序。
操作系統(tǒng)依照可執(zhí)行文件中的描述信息,將可執(zhí)行文件中的機(jī)器碼和數(shù)據(jù)加載入內(nèi)存。并進(jìn)行相關(guān)的初始化(比如設(shè)置CS:IP指向第一條要執(zhí)行的指令),然后由CPU執(zhí)行程序。
(未完待續(xù)....)