亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bootsect.asm

?? 自己動手寫操作系統源代碼,不可多得的代碼
?? ASM
字號:
;;-----------------------------------------------------------------------
;;  Original Author           : Garry
;;  Original Date             : May,14,2004
;;  FileName                  : bootsect.asm
;;  Finished Date             : May 14,2004
;;  Last Modified Date        : May 14,2004
;;  Last Modified Author      :
;;  Procedure defined         :
;;                              1.np_load
;;                              2.np_deadloop
;;                              3.np_printmsg
;;                              4.np_printprocess
;;  Lines number              : 254
;;  Module function           :
;;                              This module countains the boot sector code,
;;                              these code is fit to HD flopy,1.44M.
;;
;;------------------------------------------------------------------------

    bits 16                      ;;This boot sector's code is running under
                                 ;;real address mode.

    org 0x0000                   ;;The start address of one segment.
    ;org 0x0100                   ;;------------- ** debug ** -------------

    %define DEF_SECT_PER_TRACK 18  ;;Sector number per track.
                                   ;;We assume the boot disk is a 1.44M
                                   ;;high denisty floppy.
                                   ;;If the boot disk is not this format,
                                   ;;please change the boot code to fit it.
    %define DEF_TRACK_PER_HEAD 80  ;;Track number per head.
    %define DEF_HEAD_PER_DISK  2   ;;Head number per disk.


    %define DEF_BOOT_START 0x9f00  ;;The start segment address of the boot
                                   ;;sector.
    %define DEF_ORG_START  0x07c0  ;;The orginal address of the boot sector
                                   ;;when loaded into memory by BIOS.

    %define DEF_RINIT_START 0x1000 ;;The real mode initialize code start
                                   ;;address.
    %define DEF_RINIT_LEN   8      ;;The real mode initialize code's length,
                                   ;;unit is 512 byte,one sector.

    %define DEF_MINI_LEN   128     ;;The mini kernal's length,unit is 512B,
                                   ;;one sector.
    ;%define DEF_MINI_LEN   112     ;;------------- ** debug ** -----------

    %define DEF_MAST_LEN   1120    ;;The master's length,in sector,thus,the
                                   ;;Master's max length is 560K.


gl_start:                        ;;Start label of the boot code.

    cli                          ;;Mask all maskable interrupts.
    mov ax,DEF_ORG_START         ;;First,the boot code move itself to DEF_-
                                 ;;BOOT_START from DEF_ORG_START.
    mov ds,ax
    mov ss,ax
    mov sp,0xfff0

    cld
    mov si,0x0000
    ;mov si,0x0100
    mov ax,DEF_BOOT_START
    mov es,ax
    mov di,0x0000
    ;mov di,0x0100
    mov cx,0x0200                ;;The boot sector's size is 512B
    rep movsb

    mov ax,DEF_BOOT_START        ;;Prepare the execute context.
    mov ds,ax
    mov es,ax
    mov ss,ax
    mov sp,0x0ffe
    jmp DEF_BOOT_START : gl_bootbgn  ;;Jump to the DEF_BOOT_START to execute.

gl_bootbgn:
    call np_printmsg             ;;Print out the process message.
    call np_load
    jmp DEF_RINIT_START / 16 : 0 ;;Jump to the real mode initialize code.

    call np_deadloop             ;;If correct,this line code can not be rea-
                                 ;;ched forever.

;;------------------------------------------------------------------------
;;  The following is some helper functions and data section.
;;------------------------------------------------------------------------

np_load:                         ;;This procedure use the int 13 interrupt
                                 ;;call,load the operating system kernal
                                 ;;into memory.
    push es
    mov ax,0x0000
    mov es,ax
    mov bx,DEF_RINIT_START
    xor cx,cx
.ll_start:
    mov ah,0x02
    mov al,0x02                  ;;Load 2 sector for one time.
                                 ;;So,the sector's number of per track,
                                 ;;the total sectors of the whole system
                                 ;;code must be 2 times.
    mov ch,byte [curr_track]
    mov cl,byte [curr_sector]
    mov dh,byte [curr_head]
    mov dl,0x00
    int 0x013
    jc .ll_error
    dec word [total_sector]
    dec word [total_sector]
    jz .ll_end

    cmp bx,63*1024               ;;If the buffer reachs 64k boundry,we must
                                 ;;reinitialize it.
    je .ll_inc_es
    add bx,1024
    jmp .ll_continue1
.ll_inc_es
    mov bx,es
    add bx,4*1024                
    mov es,bx                    ;;Update the es register to another 64k b-
                                 ;;oundry.
    xor bx,bx
.ll_continue1:
    inc byte [curr_sector]
    inc byte [curr_sector]
    cmp byte [curr_sector],DEF_SECT_PER_TRACK  ;;If we have read one track,
                                               ;;must change the track number.
    jae .ll_inc_track
    jmp .ll_start
.ll_inc_track:
    mov bp,es
    mov word [tmp_word],bp                     ;;Print out the process message.
                                               ;;Because of the boring of the
                                               ;;bios call,it use  registers
                                               ;;to pass parameter,so here,
                                               ;;we must save the es register
                                               ;;to a variable.
    pop es
    call np_printprocess
    push es
    mov bp,word [tmp_word]
    mov es,bp

    mov byte [curr_sector],0x01  
    inc byte [curr_track]
    cmp byte [curr_track],DEF_TRACK_PER_HEAD
    jae .ll_inc_head
    jmp .ll_start
.ll_inc_head:
    mov byte [curr_track],0x00
    inc byte [curr_head]
    cmp byte [curr_head],0x02
    jae .ll_end
    jmp .ll_start

.ll_error:                       ;;If there is an error,enter a dead loop.
    mov dx,0x03f2
    mov al,0x00
    out dx,al
    pop es
    call np_deadloop
.ll_end:
    mov dx,0x03f2                ;;The following code shut off the FDC.
    mov al,0x00
    out dx,al
    pop es
    ret                          ;;End of the procedure.

np_deadloop:                     ;;This procedure is a dead loop,when the
                                 ;;boot sector code detect some exception,
                                 ;;it calls this procedure.
                                 ;;If this procedure is called,it means the
                                 ;;system can not loading continue,the only
                                 ;;method is to restart the computer.
    mov ah,0x03
    mov bh,0x00
    int 0x010
    mov cx,65
    mov bx,0x0007
    mov bp,errmsg
    mov ax,0x1301
    int 0x010
    mov cx,0x01
.ll_begin:
    inc cx
    loop .ll_begin
    ret                          ;;End of the procedure,in this procedure,
                                 ;;this position can not reach forever.


np_printmsg:                     ;;This procedure print out the loading msg.
    mov ah,0x03
    mov bh,0x00
    int 0x010                    ;;Read the position of cursor.
    mov cx,60
    mov bx,0x0007
    mov bp,loadmsg
    mov ax,0x1301
    int 0x010                    ;;Print out the loading message.
    ret                          ;;End of the procedure.

np_printprocess:
    push ax
    push bx
    push cx
    push bp
    mov ah,0x03
    mov bh,0x00
    int 0x010
    mov bx,0x0007
    mov cx,0x01
    mov bp,processflag
    mov ax,0x1301
    int 0x010
    pop bp
    pop cx
    pop bx
    pop ax
    ret                          ;;End of the procedure.

gl_datasection:
    loadmsg db 0x0d
            db 0x0a
            db 'Welcome to use Hello China!'
            db 0x0d
            db 0x0a
            db 'Loading now,waiting please.'
            db 0x0d
            db 0x0a
    errmsg  db 0x0d
            db 0x0a
            db 'Fault Error:please power off your computer,'
            db 'and restart again.'
            db 0x0d
            db 0x0a
    processflag
            db '.'
    curr_sector
            db 0x03
    curr_track
            db 0x00
    curr_head
            db 0x00
    total_sector
            dw DEF_RINIT_LEN + DEF_MINI_LEN + DEF_MAST_LEN
    tmp_word
            dw 0

    times 510 - ($ - $$) db 0x00
            dw 0xaa55

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91尤物视频在线观看| 久久综合成人精品亚洲另类欧美| 制服丝袜av成人在线看| 国产日韩视频一区二区三区| 亚洲aⅴ怡春院| www.日韩精品| 国产日韩欧美一区二区三区乱码| 天堂影院一区二区| 色播五月激情综合网| 中文字幕免费不卡在线| 日韩国产欧美在线视频| 99免费精品在线观看| 日韩欧美一二三区| 一区二区三区在线播| 99精品在线免费| 国产日韩三级在线| 久久精品国产在热久久| 欧美一区二区人人喊爽| 丝袜亚洲另类欧美| 欧美在线综合视频| 一区二区三区丝袜| 欧美在线免费视屏| 亚洲麻豆国产自偷在线| 成人久久视频在线观看| 国产精品无人区| 国产激情视频一区二区三区欧美| 2021中文字幕一区亚洲| 久久国产精品第一页| 日韩视频免费观看高清完整版在线观看| 亚洲妇女屁股眼交7| 欧美日韩一区二区三区在线看| 亚洲一区二区黄色| 欧美日韩电影在线播放| 日韩福利视频网| 欧美变态口味重另类| 精品夜夜嗨av一区二区三区| 欧美电影免费观看高清完整版在 | 久久aⅴ国产欧美74aaa| 精品欧美一区二区久久 | 亚洲午夜免费视频| 欧美电影在线免费观看| 日韩1区2区日韩1区2区| 精品福利一二区| 成人精品视频一区| 亚洲精品伦理在线| 欧美视频一区二区| 久久爱另类一区二区小说| 国产调教视频一区| 一本色道**综合亚洲精品蜜桃冫| 亚洲成在人线在线播放| 欧美大白屁股肥臀xxxxxx| 国产一区二区精品在线观看| 国产精品久久精品日日| 欧美日韩国产乱码电影| 久久国产精品区| 中文字幕在线观看一区二区| 在线观看一区日韩| 激情综合色播激情啊| 亚洲色欲色欲www在线观看| 欧美日韩亚洲另类| 国产精品一区二区久久精品爱涩| 中文字幕一区二区三区蜜月| 欧美理论在线播放| 国产成人高清在线| 天天色综合成人网| 中文字幕第一区| 欧美日韩成人在线一区| 岛国av在线一区| 图片区小说区国产精品视频| 国产精品免费久久久久| 欧美精选一区二区| 成人黄色综合网站| 麻豆成人在线观看| 亚洲人成影院在线观看| 精品国产乱码久久久久久图片 | 亚洲美女视频在线| 欧美xxxxxxxx| 欧美三级电影一区| 成人中文字幕合集| 久久av资源站| 亚洲成av人片一区二区三区| 国产精品日产欧美久久久久| 日韩视频免费直播| 欧美日本一区二区三区四区| av在线播放不卡| 国产一区二区三区免费看| 亚洲午夜久久久久久久久电影院 | 成人黄色小视频| 免费久久精品视频| 亚洲成a人片在线观看中文| 国产精品毛片高清在线完整版 | 国产一区二区三区黄视频| 午夜精品久久久久久| 亚洲视频一区二区在线观看| 中文字幕+乱码+中文字幕一区| 亚洲精品一区在线观看| 欧美一级免费大片| 欧美日韩午夜在线视频| 色乱码一区二区三区88 | 国产成人精品午夜视频免费| 免费看日韩a级影片| 日韩国产在线观看一区| 亚洲一区二区三区四区在线免费观看 | 国产清纯白嫩初高生在线观看91| 日韩欧美精品在线视频| 欧美一区二区三区喷汁尤物| 欧美三区免费完整视频在线观看| 日本精品免费观看高清观看| 99免费精品在线观看| thepron国产精品| 成人一区二区视频| 成人手机电影网| 粉嫩高潮美女一区二区三区| 国产乱码精品一区二区三| 国产一区二区网址| 国产精品99久久久| 国产盗摄视频一区二区三区| 成人一区在线看| 91尤物视频在线观看| 在线视频一区二区三区| 欧美午夜视频网站| 欧美精品高清视频| 欧美一二三区精品| 久久久久亚洲综合| 国产精品色一区二区三区| 亚洲欧美另类在线| 一区二区激情视频| 青青草97国产精品免费观看| 免费在线一区观看| 国产白丝网站精品污在线入口| 岛国精品在线播放| 日本高清不卡视频| 欧美一区二区三区播放老司机| 精品国产一区二区三区久久影院| 国产女同互慰高潮91漫画| 亚洲欧美电影一区二区| 五月天国产精品| 国产精品一二三四区| av动漫一区二区| 欧美一区二区成人| 国产日产精品一区| 亚洲一区av在线| 国产一区二区三区不卡在线观看 | 亚洲女与黑人做爰| 日韩电影在线免费看| 国产精品12区| 日本道精品一区二区三区| 6080午夜不卡| 国产欧美精品一区二区色综合| 亚洲综合精品久久| 国产一区二区在线观看免费| 日本道色综合久久| 26uuu精品一区二区三区四区在线| 一区在线观看免费| 免费xxxx性欧美18vr| 成人高清免费观看| 91麻豆精品国产91久久久久| 国产精品久久久久久久午夜片| 天天做天天摸天天爽国产一区| 国产激情一区二区三区四区| 欧美三片在线视频观看| 国产三级三级三级精品8ⅰ区| 午夜精品福利一区二区蜜股av| 国产高清亚洲一区| 91麻豆精品久久久久蜜臀| 最新日韩在线视频| 国产在线不卡视频| 欧美挠脚心视频网站| 亚洲欧洲av在线| 国产精品1区2区| 91精品国产综合久久精品| 亚洲美女区一区| 成人午夜私人影院| 精品88久久久久88久久久| 午夜亚洲福利老司机| 9久草视频在线视频精品| 精品免费国产一区二区三区四区| 亚洲黄色av一区| 色综合久久综合网97色综合| 国产欧美精品国产国产专区| 国产在线不卡一区| 欧美成人艳星乳罩| 日韩精品福利网| 欧美日韩精品欧美日韩精品一| 日韩美女啊v在线免费观看| 国产高清久久久久| 久久久久久久久久美女| 久久99九九99精品| 欧美成人女星排名| 久久精品噜噜噜成人88aⅴ| 91精选在线观看| 日韩av午夜在线观看| 5月丁香婷婷综合| 天天综合色天天综合| 欧美日韩一区高清| 爽好久久久欧美精品| 欧美一区二区成人6969| 麻豆成人在线观看| 久久亚洲精华国产精华液| 韩国v欧美v亚洲v日本v|