1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| BOOTSEG = 0x07c0
INITSEG = 0x9000
SYSSEG = 0x1000 | system loaded at 0x10000 (65536).
ENDSEG = SYSSEG + SYSSIZE
entry start
start:
mov ax,#BOOTSEG ; AX=07C0 (Segment de départ)
mov ds,ax ; DS=AX (On ne peut pas le charger directement)
mov ax,#INITSEG ; AX=9000 (Segment d'arrivée)
mov es,ax ; ES=AX (Même problème)
mov cx,#256 ; CX = 256 (car 256 mots de 16 bits donc 512 octets)
sub si,si ; SI=0
sub di,di ; DI=0
rep ; Répète CX fois l instruction qui suit
movw ; Charge [DS:SI] dans AX et copie-le dans [ES:DI], puis fais avancer les deux pointeurs de seize bits chacun
jmpi go,INITSEG ; Saute vers l instruction suivante mais dans la zone de destination
go: mov ax,cs ; |
Partager