Le fonctionnement de boot.s de Linux Kernel v0.01
bonsoir
j'ai lus cet article http://en.wikibooks.org/wiki/X86_Assembly/Bootloaders sur le bootloader
ils ont mentionné un code de boot.s de Linux Kernel v0.01
selon le commentaire, le programme est chargé initialement dans 0x7c00, en suit le programme se déplacera à 0x90000
si j'ai compris le code , le deplacement a été effectuer à la fin de cet portion de code, à l'aide de l'instruction
Code:
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
mov ds,ax
mov ax,#INITSEG
mov es,ax
mov cx,#256
sub si,si
sub di,di
rep
movw
jmpi go,INITSEG
go: mov ax,cs |
la question que je veux poser, c'est comment il a pu déplacer son code, je voir un branchement, il n'a pas copie les instructions d'un addresse vers une autre,
pouvez vous m'expliqué et merci