⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 计算机启动例子代码
💻 TXT
字号:
本版特性:       1.Boot 装载 setup+os 到 0X10000              2.在实模式下跳到 setup, setup 把 os 移动到 0x100000 (1M)              3.然后切换到保护模式,用一句长跳转 jmp dword 8:0x100000                           (nasm can mix 16bit and 32bit code)       4.使用了 c++               1).setup.s 预留了2048(0x800)个字节供以后使用              2).setup.s 预留空间, setup 搬移 os 的位置(紧邻setup之后),应该一致.               总结:       系统从 1M 的地方跑起来,总算像个操作系统的 Loader 了!!!!!曾经遇到Bug 1 :(  2001.12.?     系统起动后跳到 0x10000 ,但是setup地址gdt_48 定义为 gdt,0x9                                              改为 gdt,0x1     问题解决.Bug 2 :( 2001.12.15 晚 11:51 bug fixed      先看看这个程序段      ;move os.bin to 0x100000        mov     esi,0x010800         ;source offset        mov     edi,0x100000         ;dest offset        mov     ecx,0x1500           ;count    move:        mov    ax, word [dword ds:esi]        mov    word [dword ds:edi],ax        dec    ecx        cmp    ecx,0        je     endmove        inc    esi        inc    edi        jmp    move      ;晕倒,没写这一句,怎么他妈的移动!    endmove:        看到我写的注释了吗? 一开始竟然没写上              jmp move       后来把 ;dest offset 改为 0xb8000(直接写屏),发现屏幕上只有 一个红色的       f 在闪动,才查到这个问题  Bug 备忘录:    1) 在切换到保护模式后错误的使用 int 0x10 显示字符串    2) 使用不可写的段描述符 向显存写字符    3) 没有把选择子装入 ds    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -