X86 在NASM数据方面运气不佳

X86 在NASM数据方面运气不佳,x86,nasm,dos,X86,Nasm,Dos,我读数据时运气不好。我的意思是,我组装成二进制dos COM格式,当我启动它时,它就冻结了。有人能告诉我我做错了什么吗?DOS com文件应该加载到地址0x100。您应该在代码的开头包含行org 0x100。DOS com文件应该加载到地址0x100。您应该在代码的开头包含行org 0x100。DOS com文件应该加载到地址0x100。您应该在代码的开头包含行org 0x100。DOS com文件应该加载到地址0x100。您应该在代码的开头包含行org0x100。对于初学者来说,当没有任何东西

我读数据时运气不好。我的意思是,我组装成二进制dos COM格式,当我启动它时,它就冻结了。有人能告诉我我做错了什么吗?

DOS com文件应该加载到地址0x100。您应该在代码的开头包含行
org 0x100

DOS com文件应该加载到地址0x100。您应该在代码的开头包含行
org 0x100

DOS com文件应该加载到地址0x100。您应该在代码的开头包含行
org 0x100

DOS com文件应该加载到地址0x100。您应该在代码的开头包含行
org0x100

对于初学者来说,当没有任何东西可以
ret
时,您正在发出
ret
。@DanielKamilKozar,如果内存正常,DOS会准备堆栈,以便程序末尾的
ret
将控制权返回COMMAND.COM。然而,我手头上没有我选择的参考源[彼得·诺顿的IBM PC程序员指南]。对于初学者来说,当没有任何东西可供
ret
时,您就发出
ret
。@DanielKamilKozar,如果内存正常,DOS准备好堆栈,以便程序末尾的
ret
将控制权返回到COMMAND.COM。然而,我手头上没有我选择的参考源[彼得·诺顿的IBM PC程序员指南]。对于初学者来说,当没有任何东西可供
ret
时,您就发出
ret
。@DanielKamilKozar,如果内存正常,DOS准备好堆栈,以便程序末尾的
ret
将控制权返回到COMMAND.COM。然而,我手头上没有我选择的参考源[彼得·诺顿的IBM PC程序员指南]。对于初学者来说,当没有任何东西可供
ret
时,您就发出
ret
。@DanielKamilKozar,如果内存正常,DOS准备好堆栈,以便程序末尾的
ret
将控制权返回到COMMAND.COM。然而,我手头上没有我选择的参考资料[彼得·诺顿的IBM PC程序员指南]。我从来不知道这一点!谢谢@Gip Gip,查找PSP(“程序段前缀”)以了解为什么会出现这种情况。简短的版本是DOS用程序可能需要的一组信息填充段的第一个0xff字节。这是从来不知道的!谢谢@Gip Gip,查找PSP(“程序段前缀”)以了解为什么会出现这种情况。简短的版本是DOS用程序可能需要的一组信息填充段的第一个0xff字节。这是从来不知道的!谢谢@Gip Gip,查找PSP(“程序段前缀”)以了解为什么会出现这种情况。简短的版本是DOS用程序可能需要的一组信息填充段的第一个0xff字节。这是从来不知道的!谢谢@Gip Gip,查找PSP(“程序段前缀”)以了解为什么会出现这种情况。简短的版本是DOS用程序可能需要的一组信息填充段的前0xff字节。
section .data

map db 1

section .text

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

exit:
ret