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 : Sélectionner tout - Visualiser dans une fenêtre à part
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