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 :
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
La fonction affiche_point :
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
ret
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
Lorsque j'effectue ces lignes de code :
mov ax, 0x4F05
xor bh, bh
int 0x10
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/INT10F4F.HTM#INT10F4Fh00h
L'interruption 10h 0x4F05 ne fonctionne pas
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.