loader.asm 814 B

123456789101112131415161718192021222324252627282930313233
  1. ; |==================|
  2. ; | 这是loader程序 |
  3. ; |==================|
  4. ; Created by longjin, 2022/01/17
  5. ; 由于实模式下,物理地址为CS<<4+IP,而从boot的定义中直到,loader的CS为0x1000, 因此loader首地址为0x10000
  6. org 0x10000
  7. mov ax, cs
  8. mov ds, ax ; 初始化数据段寄存器
  9. mov es, ax ; 初始化附加段寄存器
  10. mov ax, 0x00
  11. mov ss, ax ;初始化堆栈段寄存器
  12. mov sp, 0x7c00
  13. ;在屏幕上显示 start Loader
  14. mov ax, 0x1301
  15. mov bx, 0x000f
  16. mov dx, 0x0100 ;在第2行显示
  17. mov cx, 23 ;设置消息长度
  18. push ax
  19. mov ax, ds
  20. mov es, ax
  21. pop ax
  22. mov bp, Message_Start_Loader
  23. int 0x10
  24. jmp $
  25. ; 要显示的消息文本
  26. Message_Start_Loader: db "[DragonOS] Start Loader"
  27. len_Message_Start_Loader: db 23