2014-10-17 48 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