• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            JACKY_ZZ[貓貓愛吃魚]

            春風拂面兩頰紅,秋葉灑地一片金。 夏荷搖曳一身輕,冬雪覆蓋大地銀。
            posts - 30, comments - 123, trackbacks - 0, articles - 0

            [ASM] bootsect - nasm

            Posted on 2014-11-12 20:23 jacky_zz 閱讀(282) 評論(0)  編輯 收藏 引用 所屬分類: ASM

             

             1 2012.6.30, Jinfeng @ SWUST
             2 ; nasm boot.asm -o boot.bin
             3 
             4     org 07c00h    ; cs:ip = 07c00h
             5 entry:
             6     ; set env
             7     mov ax,cs
             8     mov ds,ax
             9     mov es,ax
            10     mov ss,ax
            11     mov sp,0x400
            12     
            13 load_system:
            14     mov dx,0x0000
            15     mov cx,0x0002
            16     
            17     mov ax,0x1000
            18     mov es,ax
            19     xor bx,bx ; [es:bx]
            20     
            21     mov ax,0x0200+2        ; 1024 bytes
            22     int 0x13
            23     jnc move_system
            24 try_again:
            25     jmp load_system
            26     
            27 move_system:
            28     cli            ; don't need BIOS func
            29                 ; will open just before 'ret' to task 0 in new mode
            30     cld
            31     mov ax,0x1000
            32     mov ds,ax
            33     xor ax,ax 
            34     mov es,ax
            35     mov cx,0x0200
            36     sub si,si
            37     sub di,di
            38     rep movsb
            39     
            40 load_gdtr:
            41     mov ax,0x0000
            42     mov ds,ax
            43     
            44     mov ax,(gdtr-gdt)
            45     mov word [gdtr],ax
            46     mov dword [gdtr+2],gdt    ; not 0x7c00+gdt ?
            47     
            48     lidt [idtr]        ; CPU request IDT before jump into new mode
            49     lgdt [gdtr]
            50     
            51     mov al,0x02 
            52     out 0x92,al        ; open A20, enable 32-bit address
            53     
            54     mov ax,0x0001
            55     mov cr0,eax        ; set PE flag in EFLAGS register
            56     
            57     jmp dword 0x08:0            ; jmp to reset all registers in new mode
            58 
            59 ;end!!!
            60 
            61 gdt:    dw 0,0,0,0
            62         dw 0x1000,0x0000,0x9a00,0x00c0    ; 16Mb,0x0000,r/x
            63         dw 0x1000,0x0000,0x9200,0x00c0    ; 10MB,0x0000,r/w
            64         dw 0x0002,0x8000,0x920b,0x00c0    ; 8kb,0xb8000, 4kb<-swap->4kb
            65 
            66 gdtr:    dw 0x0000,0x0000,0x0000
            67 idtr:    dw 0x0000,0x0000,0x0000
            68 
            69 times 510-($-$$)    db        0
            70                     dw         0xaa55

             

            久久久久国产一区二区| 97超级碰碰碰久久久久| 国内精品久久久久影院老司 | 色诱久久av| 大伊人青草狠狠久久| 久久久久这里只有精品| 久久久久久亚洲AV无码专区| 99精品久久久久久久婷婷| 伊人久久大香线蕉综合影院首页| 99re这里只有精品热久久| 久久这里都是精品| 久久精品国产精品亚洲| 77777亚洲午夜久久多喷| 国产精品欧美久久久久无广告| 久久午夜福利无码1000合集| 国产成人99久久亚洲综合精品| 亚洲va久久久噜噜噜久久狠狠 | 亚洲精品无码久久久| 狠狠色丁香婷婷久久综合不卡 | 国产精品久久久久无码av| 97精品伊人久久久大香线蕉| 久久久久人妻精品一区三寸蜜桃| 久久久无码精品亚洲日韩蜜臀浪潮 | 少妇人妻综合久久中文字幕| 国产精品无码久久久久| 亚洲国产精品久久66| 99久久精品国产高清一区二区| 久久亚洲美女精品国产精品| 四虎国产精品成人免费久久| 要久久爱在线免费观看| 合区精品久久久中文字幕一区| 青青草原综合久久大伊人导航| 青青青青久久精品国产| 久久久久久久99精品免费观看| 狠狠久久亚洲欧美专区 | 9久久9久久精品| 狠狠色婷婷综合天天久久丁香 | 久久99热这里只频精品6| 久久人人爽人人爽人人片AV高清| 久久笫一福利免费导航| 精品多毛少妇人妻AV免费久久|