一段安全的空间
------------------------
在8086模式中,随意向一段内存空间写入内容是很危险的,因为这段空间中可能存放着重要的系统数据或代码.
在不能确定一段内存空间中是否存放着重要的数据或代码的时候,不能随意向其中写入内容.
不要忘记,我们是在操作系统的环境中工作,操作系统管理所有的资源,也包括内存,如果我们需要向内存空间写入数据的话,要使用操作系统给我们分配的空间,而不应该直接用地址任意指定内存单元,向里面写入.
但是,同样不能忘记,我们正在学习的是汇编语言,要通过它来获得底层的编程体验,理解计算机底层的基本工作机理.所以我们尽量直接对硬件编程,而不去理会操作系统.
我们似乎面临一种选择,是在操作系统中安全,规矩地编程,还是自由,直接地用汇编语言去操作真实的硬件,了解那些被操作系统掩盖的真相?在大部分的情况下,我们选择后者,除非我们就是在学习操作系统本身的内容.
注意,我们在纯DOS方式下,可以不理会DOS,直接用汇编语言去操作真实的硬件,因为运行在CPU实模式下的DOS,没有能力对硬件系统进行全面,严格地管理.但在XP,UNIX这些运行于CPU保护模式下的操作系统中,不理会操作系统,用汇编语言去操作真实的硬件,是根本不可能的.硬件已被这些操作系统利用CPU保护模式所提供的功能全面而严格地管理了.
在后面的课程中,我们需要直接向内存中写入内容,又不希望发生异常,所以要找到一段安全的空间供我们使用.在一般PC机中,DOS方式下,DOS和其他全法的程序一般都不会使用0:200~0:2FF的256个字节的空间.所以,我们可以使用这段空间是安全的.还过谨慎起见,在进入DOS后,我们可以先用DEBUG查看一下,如果单元的内容都是0的话,则证明DOS和其他合法的程序没有使用这里.