1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| ;----------BOOTSECTOR-------------
db 0EBh,3Ch,90h,4Dh,53h,44h,4Fh,53h,35h,2Eh,30h,00h,02h,01h,01h,00h
db 02h,0E0h,00h,40h,0Bh,0F0h,09h,00h,12h,00h,02h,00h,00h,00h,00h,00h
db 00h,00h,00h,00h,00h,00h,29h,0A5h,8Dh,28h,90h,4Eh,4Fh,20h,4Eh,41h
db 4Dh,45h,20h,20h,20h,20h,46h,41h,54h,31h,32h,20h,20h,20h
;c'est pour pas reformater à chaque fois
mov ax,4f02h
mov bx,0108h
int 0010h ;mode texte
mov sp,0f000h
mov ah,0
mov dl,0
int 13h ;reinitialise le lecteur
mov ah,02
mov al,5
mov ch,0
mov cl,2
mov dh,0
mov dl,0
mov bx,000h
push bx
pop es
mov bx,1000h
int 13h ;ecrit le secteur 1 à 0000:0000
mov ax,0
mov ds,ax
lgdt [ds:1000h] ;charge le registre GDTR
;mov ax,0b800h
mov ds,ax
mov byte [1030],'H'
mov byte [1031],0x57
mov byte [1032],'E'
mov byte [1033],0x57
mov byte [1034],'L'
mov byte [1035],0x57
mov byte [1036],'L'
mov byte [1037],0x57
mov byte [1038],'O'
mov byte [1039],0x57 ;'hello': jusque là ça marche
;passe en pmode
cli
mov eax,cr0
or eax,1
mov cr0,eax
inkey:
in al,0060h
cmp al,001ch
jne inkey ;attend 'enter'
;et là ça redemmare
mov eax,16
mov ds,eax ;initialise le segment DS
jmp 8h:1000h+24 ;saut à code1 |
Partager