Bonjour
Je suis le tutoriel https://esauvage.developpez.com/tuto...m/?page=page_5 et je tombe sur un problème au code à l'adresse de fonction affiche_point
Lorsque je fais appelle à la fonction 0x4F05 de l'interruption 10h celui ci me révèle une erreur dans l'opération.
Voilà le code complet :
Avant que je n'appelle la fonction affiche_point :
La fonction affiche_point :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 mov ax, 160 ;On met 160 dans ax ;ça sera l'abscisse du point qu'on affichera mov bx, 100 ;On met 100 dans bx ;ça sera l'ordonné du point qu'on affichera mov dx, 0x03 ;On met 0x03 dans dx ;ça sera la couleur du point qu'on affichera, ici bleu ciel call affiche_point ;On appelle la fonction affiche_point, elle permet d'afficher un point avec les paramètres indiqués plus haut
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 affiche_point: ;Adresse push bx push cx push es push di push dx push ax mov es, [adr_fen_A] mov ax, bx mul word [largeur_memoire] mov di, ax pop cx add di, cx adc dx, 0 cmp dx, [bloc_courant] je bloc_OK mov [bloc_courant], dx mov ax, 0x4F05 xor bh, bh int 0x10 bloc_OK: ; pop bx pop dx ; add di, bx push cx mov al, dl stosb pop ax pop di pop es pop cx pop bx retLorsque j'effectue ces lignes de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 largeur_memoire = 1280 ;Octets par ligne de balayage écran (Bytes Per Scan Line). adr_fen_A = 40 960 ;Segment de départ de la fenêtre A bloc_courant = 8192
alors ah sera égal à 1, ce qui veut dire que l'opération a échoué selon la documentation ici présente https://www.gladir.com/LEXIQUE/INTR/...M#INT10F4Fh00h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 mov ax, 0x4F05 xor bh, bh int 0x10






Répondre avec citation



Consultez nos FAQ : 

Partager