啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現)

編程:啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現)

彙編語言編寫:   

         

boot.asm啓動程序代碼:     

         ;我們的啓動程序實現很簡單的功能在屏幕中央

         ;打印一行字符串

org 07c00h   ;org指令明確告訴編譯器我程序開始地址是07c00h,而不是

             ;原來的00000

;int彙編指令 int 10h

             

     mov ax,cs

     mov es,ax

             mov bp,msgstr  ;es:bp  ;指向的內容就是我們要顯示的

                            字符串的地址

             mov cx,12     ;字符串長度

     mov dh,12      ;顯示的行號

     mov dl,36      ;顯示的列號

     mov bh,0       ;顯示的頁數

     mov al,1       ;顯示的是串結構

     mov bl,0ch     ;顯示字符屬性 黑底紅字

     mov ah,13h     ;明確調用13h子程序

             msgstr: db "hello my osi"

     int 10h

     times 210-($-$$) db 0   ;重複N次每次填充值爲0

     dw 55aah

     jmp $    ;不斷跳轉到當前位置是個死循環。注:$是當前地址。

彙編運行環境圖例:

     啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現) - 文豪 - WELCOME MY BLOG.

虛擬機系統:red hat linux運行環境下編寫c語言代碼實現:

     

     將自己已經編譯好的彙編boot.asm啓動程序載入虛擬機中,在虛擬機中寫入c語言代碼實現boot.bin的512B啓動程序拷貝。

#include<stdio.h>

#include<fcnt1.h>

#include<sys/types.h>

#include<sys/stat.h>

int main(int argc,char *argv[])

{

            int fd_source;

            int fd_dest;

            int read_count = 0;

           char buffer[512]={0};

            fd_source=open("boot.bin",0_RDONLY);

            if(fd_source<0)

           {

                            perror("open boot.bin error:");

                           return 0;

            }

           fd_dest=ope("virtual_floppy.vfd",0_RWONLY);

            while ((read_count=read(fd_source,buffer,512))>0)

           {

                       write(fd_dest,buffer,read_count);

                       memset(buffer,0,512);

            }

                printf("write image ok!");

                return 0;

}

    

操作步驟圖例:


第一步:將我們在彙編寫好的空白boot啓動鏡像加載

      接下來,我們在輸入此命令準備寫入c語言代碼

      啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現) - 文豪 - WELCOME MY BLOG.

 

第二步:我們有了c語言基礎,那麼我們開始將512B的boot.bin的啓動程序開始進行拷貝


啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現) - 文豪 - WELCOME MY BLOG.

 

第三步:好了,我們已經將boot.bin寫好了

啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現) - 文豪 - WELCOME MY BLOG.

 

啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現) - 文豪 - WELCOME MY BLOG.

 

用winImage啓動下我們編寫好的程序。


啓動程序實現很簡單的功能在屏幕中央 ;打印一行字符串(彙編+c+red hat linux實現) - 文豪 - WELCOME MY BLOG.

 

        

                                                                 作者註明:剛學習彙編,請大牛勿噴!!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章