Partage
  • Partager sur Facebook
  • Partager sur Twitter

L'interruption 10h 0x4F05 ne fonctionne pas

    24 novembre 2022 à 10:49:08

    Bonjour

    Je suis le tutoriel https://esauvage.developpez.com/tutoriels/asm/assembleur-intel-avec-nasm/?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 : 

    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




    • Partager sur Facebook
    • Partager sur Twitter

    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.
    • Editeur
    • Markdown