2013-02-23 -一个简单的实模式跳转到保护模式程序(无loader功能)

写一个最简单的从实模式跳转到保护模式的程序。顺便学习温故下各个基本寄存的设置。


总的来说,实模式跳转到保护模式的基本思路和流程是:


1、准备好保护模式下的代码段以及数据段(通俗的说就是从实模式跳转到保护模式后,你到底要cpu做些啥。当然了,只是单纯的跳转一下玩玩也无妨,不过好歹跳转了下,总要留下点“在此一游”之类的豪情壮志吧~)

这里具体要做的第一件事情其实就是分配好内存吧。现在先不考虑实模式跳转保护模式后,又作为装载器(这个后面再实现了)。所以,所有的让你实现的代码空间只有一个扇区(512bytes),当然了,还需要分配gdt空间初步分配如下:

GDT表基址位于物理地址0x08000

2、在实模式下,为GDT添加对应的格式的表项(程序总所有段的描述符)

3、开辟一个小的内存空间(大小为6个字节),分成2部分,低地址2个字节为表的长度,高4个字节为32位的GDT表首地址,这个动作主要是为了后续装载gdt表使用。

4、处理第21条地址线,A20这个遗留问题(傻瓜式代码,一劳永逸式)

5、使用lgdt命令初始化gdtr寄存器

6、对CR0寄存器进行操作,将PE位打开 = 1。

7.来一个华丽的jmp,进行实模式到保护模式的跳转。

8、执行32位代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用 `uni-app` 创建一个首页时,您可以使用 `uni-icons` 或其他图标库来添加小图标,并使用 `uni-navto` 或 `uni-relaunch` 等方法功能页面之间的。以下是一个示例代码,展示如何创建一个带有三个小图标的首页: ```html <template> <view class="home"> <view class="icon-container"> <view class="icon-item" @click="goToPage1"> <uni-icons name="home"></uni-icons> <text>功能1</text> </view> <view class="icon-item" @click="goToPage2"> <uni-icons name="heart"></uni-icons> <text>功能2</text> </view> <view class="icon-item" @click="goToPage3"> <uni-icons name="settings"></uni-icons> <text>功能3</text> </view> </view> </view> </template> <script> export default { methods: { goToPage1() { uni.navigateTo({ url: '/pages/page1' }); }, goToPage2() { uni.navigateTo({ url: '/pages/page2' }); }, goToPage3() { uni.navigateTo({ url: '/pages/page3' }); } } } </script> <style> .home { display: flex; justify-content: center; align-items: center; height: 100vh; } .icon-container { display: flex; justify-content: space-around; width: 80%; } .icon-item { display: flex; flex-direction: column; align-items: center; } uni-icons { font-size: 40px; } </style> ``` 在上面的示例中,我们使用了 `uni-icons` 组件来添加图标,`name` 属性指定了图标的名称。您可以根据需求选择合适的图标,并调整样式。 每个小图标都绑定了点击事件,当用户点击时,将使用 `uni.navigateTo` 方法到对应的页面。您可以根据际需求修改逻辑,使用 `uni-relaunch` 或其他方法。 请注意,以上示例假设您已经在项目中正确引入了 `uni-icons` 组件,并创建了对应的功能页面。如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值