彙編語言 手記9

使用匯編語言編譯程序(MASM.EXE)對源程序文件中的源程序進行編譯,產生目標文件編程

用鏈接程序(LINK.EXE)對目標文件進行鏈接,生成可在操做系統中直接運行的可執行文件。spa

 

可執行文件中包含兩部份內容:操作系統

程序(從源程序中的彙編指令翻譯過來的機器碼)和數據(源程序中定義的數據)翻譯

相關的描述信息code

 

一個彙編程序是由多個段組成的,這些段被用來存放代碼,數據活看成棧空間來使用。blog

 

 程序返回:應該在程序的末尾添加返回的程序段內存

mov ax,4c00Hasm

int 21H編譯

這兩條指令所實現的功能就是程序返回。class

 

 

 

程序加載後,ds中存放着程序所在的內存去的段地址,這個內存去的偏移地址爲0,則程序所在的內存區的地址爲: ds:0 ;

這個內存區的前256個字節中存放的是psp,dos用來和程序進行通訊。

從256字節處向後的空間存放的是程序。

 

因此咱們從ds中能夠獲得psp的段地址SA,psp的偏移地址爲0,則物理地址爲SA*16+0

由於PSP佔256(100H)字節,因此程序的物理地址是:

sa*16+0+256 = sa*16+16*16=(sa+16)*16+0

 

assume cs:codesg codesg segment mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21h codesg ends end

把 masm.exe 與link.exe一同放入文件夾中:

相關文章
相關標籤/搜索