让CPU在实模式下获得4G访问能力的最简单代码

本文提供了一段21行的汇编代码,能够在实模式下通过打开A20地址线和修改CPU工作模式控制寄存器CR0,使得CPU能够访问4GB的地址空间。代码适用于DOS环境,使用MASM6.15编译,并警告在执行后不要使用某些指令以避免失去4G访问能力。
摘要由CSDN通过智能技术生成
;以下内容由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中
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值