使用匯編語言編譯程序(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一同放入文件夾中: