将背景图像插入引导加载程序

时间:2013-05-01 02:46:32

标签: c assembly bootloader

我在Assembly中创建了一个引导加载程序,它正在输出“Hello World”。我想将背景图像插入此引导加载程序。那我怎么修改这段代码呢?非常感谢你。

bits 16 ;
org 0x7c00 ; 

jmp main ; 



Message db "Welcome Home, booting from low-level 16-bit...", 0x0 
MessageB db "Chaturaka's own bootloader program written in x86 assembly language.", 0x0
AnyKey db "Press any key to reboot...", 0x0 

;
Println:
    lodsb ;
    or al, al
    jz complete
    mov ah, 0x0e    
    int 0x10 ;
    jmp Println ;   
complete:
    call PrintNwL

;   
PrintNwL: 
    mov al, 0   ; 
    stosb       ; 


    mov ah, 0x0E
    mov al, 0x0D
    int 0x10
    mov al, 0x0A 
    int 0x10
    ret

;
Reboot: 
    mov si, AnyKey
    call Println
    call GetPressedKey 

    ;

    db 0x0ea 
    dw 0x0000 
    dw 0xffff 

;
GetPressedKey:
    mov ah, 0
    int 0x16  ;
    ret 

;
main:
   cli ;

   mov ax,cs              
   mov ds,ax   
   mov es,ax               
   mov ss,ax                
   sti ;

   mov si, Message 
   call Println 

   mov si, MessageB
   call Println 

   call PrintNwL
   call PrintNwL

   call Reboot 

   times 510 - ($-$$) db 0 ;
   dw 0xAA55 ;

希望你能回答这个问题。

2 个答案:

答案 0 :(得分:0)

以下是您需要执行的步骤:

  • Set a graphics mode(例如模式0Dh或模式13h)。
  • (可选)如果图像不使用默认调色板,请设置调色板。
  • 从磁盘加载图像数据并将其写入视频内存,通常从段0A000h开始。

答案 1 :(得分:0)

结帐osdev WIKI,获取有关操作系统和引导程序开发的大量有用信息。 here您可以在受保护模式下找到有关屏幕绘制的重要信息。