2014-10-17 60 views
0
section .data 

map db 1 

section .text 

start: 
cmp byte [map], 1 
je exit 
jmp start 

exit: 
ret 

我沒有運氣讀數據。我的意思是我組裝成二進制DOS COM格式,當我啓動它時就凍結了。有人能告訴我我做錯了什麼嗎?與數據沒有運氣NASM

+0

對於初學者來說,當沒有什麼「ret」發出時,你會發出'ret'。 – 2014-10-17 13:42:46

+0

@DanielKamilKozar,如果內存服務正常,DOS準備好堆棧,使程序結束時的'ret'將控制返回到COMMAND.COM。但是,我沒有這個參考資源[Peter Norton的IBM PC程序員指南]。 – 2014-10-17 20:33:34

回答

2

DOS com文件預計將被加載到地址0x100。您應該在代碼的開始處包含行org 0x100

+0

從來不知道!謝謝! – 2014-10-17 21:03:11

+0

@ Gip-Gip,查看PSP(「程序段前綴」),找出原因。簡短版本是DOS用程序可能需要的大量信息填充段的第一個0xff字節。 – 2014-10-18 03:56:01