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 jmpi go,INITSEGla 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,
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
pouvez vous m'expliqué et merci
Partager