鱼C论坛

 找回密码
 立即注册
查看: 1689|回复: 4

一个操作系统实现 谁能帮我把代码缩短

[复制链接]
发表于 2013-8-29 12:13:01 | 显示全部楼层 |阅读模式
10鱼币
  1. %macro Descriptor 3
  2. dw %2 & 0FFFFh ; 段界限1
  3. dw %1 & 0FFFFh ; 段基址1
  4. db (%1 >> 16) & 0FFh ; 段基址2
  5. dw ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh) ; 属性1 + 段界限2 + 属性2
  6. db (%1 >> 24) & 0FFh ; 段基址3
  7. %endmacro ; 共 8 字节

  8. org 07c00h
  9. jmp c16
  10. [SECTION .gdt]
  11. ;GDT 段基址 段界限 属性
  12. NULL: Descriptor 0, 0, 0 ;空描述符
  13. code: Descriptor 0, Len-1, 98h+4000h;4000h为32位段 98h可执行代码
  14. LDE: Descriptor 0b8000h,0ffffh,92h ;92读写 显存
  15. ;GDT结束
  16. GdtLen equ $-NULL ;GDT长度
  17. GdtSize dw GdtLen-1;GDT界限
  18. DD 0 ;GDT基地址
  19. ;GDT选择
  20. SetCode32 equ code-NULL ;代码
  21. SetGs equ LDE -NULL ;显存

  22. [SECTION .s16]
  23. [BITS 16]
  24. c16:
  25. mov ax,cs
  26. mov ds,ax
  27. mov es,ax
  28. mov ss,ax
  29. mov sp,0100h
  30. ;初始化32位代码段
  31. xor eax,eax
  32. mov ax,cs
  33. shl eax,4
  34. add eax,code32
  35. mov word [code+2],ax
  36. shr eax,16
  37. mov byte [code+4],al
  38. mov byte [code+7],ah
  39. ;加载GDTR做准备
  40. xor eax,eax
  41. mov ax,ds
  42. shl eax,4
  43. add eax,NULL
  44. mov dword [GdtSize+2],eax
  45. ;加载GDTR
  46. lgdt [GdtSize]
  47. ;关中断
  48. cli
  49. ;打开地址A20
  50. in al,92h
  51. or al,00000010b
  52. out 92h,al
  53. ;准备切换到保护模式
  54. mov eax,cr0
  55. or eax,1
  56. mov cr0,eax
  57. ;真正进入保护模式
  58. jmp dword SetCode32:0

  59. [SECTION .s32]
  60. [BITS 32]
  61. code32:
  62. mov ax,SetGs
  63. mov gs,ax


  64. jmp $
  65. Len equ $-code32
复制代码

实模式 跳到保护模式 代码  太长了    不容易理解  谁能帮我把一些没用代码去掉

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-1 12:09:25 | 显示全部楼层
这个几乎没法缩短,要不把打开A20的代码去掉,反正现在已经默认打开了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-7 10:39:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-26 09:09:44 | 显示全部楼层

学习,支持一下!加油:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-9-26 22:18:00 | 显示全部楼层


学习,支持一下!   我才初学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-13 14:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表