L'assemblage, l'impression ascii

J'ai un problème avec mon code assembleur. Je veux imprimer numéro mémorisé dans le registre cx, mais quand j'ai essayé de l'imprimer, imprimer de caractères ascii au lieu de l'ascii numéro, j'ai donc décidé d'écrire une procédure pour convertir les caractères ascii dans le fichier ascii de la valeur.
Problème, c'est que lorsque j'essaie d'appeler cette procédure, le programme se bloque et je dois redémarrer dosbox. Personne ne sait quoi de mal avec ce code? Merci.

P4      PROC                
            MOV AX,CX           ;CX = VALUE THAT I WANT TO CONVERT
            MOV BX,10           
    ASC2:
            DIV BX              ;DIV AX/10
            ADD DX,48           ;ADD 48 TO REMAINDER TO GET ASCII CHARACTER OF NUMBER 
            PUSH AX             ;SAVE AX
            MOV AH,2            ;PRINT REMAINDER STORED IN DX
            INT 21H             ;INTERRUP
            POP AX              ;POP AX BACK
            CMP AX,0            
            JZ EXTT             ;IF AX=0, END OF THE PROCEDURE
            JMP ASC2            ;ELSE REPEAT
    EXTT:
            RET
    P4      ENDP
  • Vous devez effacer DX avant de se diviser. DIV BX divise DX:AX par BX.
  • En dehors de ce que @user786653 dit, vous avez aussi le problème que vous aurez l'impression que les chiffres dans l'ordre inverse. E. g. 123 figure en tant que 321 avec votre code.
InformationsquelleAutor aron23 | 2013-03-25