Bonjour,
Je bute depuis des jours...J'ai un problème bizarre dans l'exécution du Kernel de mon OS ! Des variables (mais pas toutes) semblent ne pas mémoriser la valeur que je leur donne !
Exemple : j'affecte une valeur à [X] et [Y]. [Y] est bien pris en compte, mais pas [X]. Si j'intervertis les deux lignes où sont déclarées ces variables, c'est [X] qui est bien pris en compte, mais pas [Y] !
Voici à quoi ressemble mon kernel, chargé par un boot en 0x0100:0000 mode réel (nasm) :
En fait, mon Kernel contient 150 octets de variables (env 30 variables dont des chaines), et fait dans les 1000 octets. Y a t'il des chevauchements possibles des instructions sur les données ? Enfin, qu'est ce qui cloche ? Si il faut je placerai demain tous les fichiers de prog !
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 [bits 16] [org 0] jmp start %include 'Fonctions.asm' start: ;Instructions mov ax, 0x100 mov es, ax mov ds, ax mov ax, 0x8000 mov ss, ax mov ax, 0xF000 mov sp, ax mov ax, 1 mov [X], ax mov ax, 2 mov [Y], ax call FctUtilisantXetY ;Autres instructions ;... ;Boucle de fin Fin: jmp Fin ;Variables X dw 0 Y dw 0
D'avance merci !
Partager