2016-10-24 6 views
0

Je souhaite imprimer un tableau 2D en assemblage 8086 et je suis bloqué dans les dernières étapes de l'affectation.Impression d'espaces entre tous les numéros imprimés en 8086 Assemblage

Par exemple, je dois ma sortie soit:

1 2 3 4 5 
6 7 8 9 10 

au lieu de

12345 
678910 

J'ai déjà une boucle de nid pour imprimer le tableau, mais je ne sais pas comment imprimer espaces entre les nombres. Merci!

+2

Bienvenue dans Stack Overflow. Veuillez lire la page [** About **] (http://stackoverflow.com/tour) bientôt et également visiter les liens décrivant [** Comment poser une question **] (http://stackoverflow.com/questions/how-to-ask) et [** Comment créer un exemple minimal, complet et vérifiable **] (http://stackoverflow.com/help/mcve). Fournir les détails nécessaires, y compris votre code, et les erreurs associées, le cas échéant, permettra à tout le monde ici de vous aider avec votre question. –

+0

Au lieu d'imprimer un caractère numérique, imprimez un caractère ''' 'de la même manière. Tout est juste ASCII octets dans ASM (sauf si vous écrivez du code pour gérer UTF-8 ...) –

+0

Cliquez sur "modifier" sous votre question, collez votre code, enregistrez la question. Nous devons voir votre code pour effectuer les changements nécessaires. –

Répondre

1

supposons que vous avez une boucle, que le nombre d'impressions 1-10

mov ax,1 

L_again: 
    push ax 
    call printAX 

    pop ax 
    inc ax 
    cmp ax,10 
    jbe L_again 
ret 

tout ce que vous avez besoin est d'ajouter un « imprimer un espace » juste après l'impression AX

mov ax,1 

L_again: 
    push ax 
    call printAX 
    call printSpace 

    pop ax 
    inc ax 
    cmp ax,10 
    jbe L_again 
ret 

qui pourrait ressemble à ceci (par exemple pour DOS). Pour de petites fonctions comme celle-ci, vous pouvez bien sûr ajouter simplement les quelques instructions directement dans la boucle

printSpace: 
    mov dl, ' ' 
    mov ah, 2 
    int 21h 
    ret