;以下内容由BIOS与32位简单内核探究QQ群(67286087)创建者cxdzxc---宁静的天空(原兰州-自由人)创作于2008-11-22
;总共的代码只有21行,(去除空行和说明,如果不算伪指令的行,那就只有16行了)^_^,而且没有使用DOS的系统调用,
;这个程序由MASM6.15编译通过,生成的文件需要在DOS下执行,COM文件可以正确执行,EXE会死机或重启
;执行此程序后,恭喜你,你可以在实模式下访问4G的地址空间了
;要访问4G空间需要使用指令---MOV ESI,#data(#data是任意的不超过32位的立即数);---MOV AX,ES:[ESI]
;在程序执行后的实模式下,请不要使用像---MOV ES,AX这样的指令(不能重装ES),否则将丧失4G的访问能力
;传播请保留全部的信息,有什麽问题(表述或者程序有错误的话)请联系---QQ:750347821
;EMAIL:750347821@QQ.COM,CXDZXC@GMAIL.COM
.386P ;这个伪指令指出下面的代码兼容了80X386保护模式以上的代码,要操作保护模式的寄存器,
;数字后面必须要有个字母P
CSEG SEGMENT USE16 ;USE16这个伪指令指出代码段CS是使用16位的段,因为.386P伪指令的默认是32位段,
;这里要改一下默认
ORG 100H ;这里设定标号START开始的地址是100H,某些编译器可以不用这行
START: cli ;关中断,这个很重要,否则别怪我言之不预
in al,0eeh ;通过读0EEH端口打开A20地址线
mov ebx,cs ;将代码段寄存器中的值装入到EBX中
;总共的代码只有21行,(去除空行和说明,如果不算伪指令的行,那就只有16行了)^_^,而且没有使用DOS的系统调用,
;这个程序由MASM6.15编译通过,生成的文件需要在DOS下执行,COM文件可以正确执行,EXE会死机或重启
;执行此程序后,恭喜你,你可以在实模式下访问4G的地址空间了
;要访问4G空间需要使用指令---MOV ESI,#data(#data是任意的不超过32位的立即数);---MOV AX,ES:[ESI]
;在程序执行后的实模式下,请不要使用像---MOV ES,AX这样的指令(不能重装ES),否则将丧失4G的访问能力
;传播请保留全部的信息,有什麽问题(表述或者程序有错误的话)请联系---QQ:750347821
;EMAIL:750347821@QQ.COM,CXDZXC@GMAIL.COM
.386P ;这个伪指令指出下面的代码兼容了80X386保护模式以上的代码,要操作保护模式的寄存器,
;数字后面必须要有个字母P
CSEG SEGMENT USE16 ;USE16这个伪指令指出代码段CS是使用16位的段,因为.386P伪指令的默认是32位段,
;这里要改一下默认
ORG 100H ;这里设定标号START开始的地址是100H,某些编译器可以不用这行
START: cli ;关中断,这个很重要,否则别怪我言之不预
in al,0eeh ;通过读0EEH端口打开A20地址线
mov ebx,cs ;将代码段寄存器中的值装入到EBX中