实模式到保护模式学习

 

                          2008年6月9日   星期一 天气阴
今天学到了保护模式这章,看书上实模式到保护模式的汇编代码。总感觉没什么feel,最后,通过书上的解释算是看完了但有种睡一觉就会忘掉的感觉。都说书上得来终觉浅,须知此事要躬行。于是试着自己跟着书上的思路编一个,即使最终写出来的代码和书上一模一样也罢。凭着记忆一个个字符的敲,偶尔参考一下书上代码。遵循梁肇新先生的原则,边写边进行编译(个人觉得是个不错的方法,错误及时发现尽量少的积累下去)用的是那个nasm是DOS环境下的,打开个cmd输入nasm pm.asm其它也懒得去输。然后每编完几条指令就来一次上档键编译一次,你别说还挺方便的。
不过那个程序还挺难缠的,也就60来行代码。谁知道整个过程不是这出问题就是那出问题。就说Descriptor这个宏,如果不是现在的江水质量远没有屈原那个时候清澈,怕没呛死就先给毒死了,肯定会追随屈原去了。那个宏里面一会左移一会右移又是与又是或的,搞了我大半天才有点头绪。不过,还挺佩服作者的可以写出这么个宏来,一劳永逸以后就不用一位位的去弄那个段描述符了,直接的分成段基址、段界限、段属性三部分绝啊。之后,是GDT表的界限问题,那刻我真怀疑自己是不作弊上的大学怎么连个减法都这么难啊,怎么要GDT长度减一而不是GDT长度呢。紧接着是“初始化32位代码段描述符”看了几个小时就是不知道是干什么用的,差点把电脑给砸了我想刚开始在GDT定义的时候不是已经把基地址给设好了吗,到最后发现原来那个东西只是个初始化晾在那没用的还得自己代码一步步的设置。最后A20地址线的打开以及cr0的设置就较为简单了一步到位,然后进入到32保护模式(这一刻谁要向我借钱,我肯定会全部倒出来给他。不过说实在掏光也只有几块)。到了尾声就是熟悉的显存的写操作,都是老朋友了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值