EnableA20 proc near pushf mov ah, 0DFh cli call Empty8042 jnz GateA20_fail out 0EDh, ax mov al, 0D1h out 64h, al call Empty8042 jnz GateA20_fail mov al, ah out 60h, al call Empty8042 push cx mov cx, 14h GateA20_loop: out 0EDh, ax loop GateA20_loop pop cx jmp short GateA20_end GateA20_fail: jmp short Erreur GateA20_end: popf ret EnableA20 endp Empty8042 proc near push cx xor cx, cx dec cx Empty8042_try: out 0EDh, ax call IODelay in al, 64h and al, 2 loopnz Empty8042_try pop cx ret Empty8042 endp
ref dw offset nullint, selecteur_de_nullint, 9E00h, 0 idt db 2048 dup(0) idtr dw 7FFh dd offset idt
xor eax, eax mov ax, segment_code_32bits shl eax, 4 add [idtr+2], eax xor eax, eax mov ax, segment_donnees shl eax, 4 add [ref], ax adc [ref+6],0 shr eax,16 add [ref+6],ax cld mov cx, 256 mov di, offset idt copy_loop: mov si, offset ref movsd movsd loop copy_loop lidt [idtr]
nullint: iretd
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionef dw nullint, selecteur_de_nullint, 9E00h, 0