2016-10-24 40 views
0

我想在8086 Assembly中打印一个2D数组,并且我被卡在作业的最后几个步骤中。在8086组件中打印的每个数字之间打印空格

例如,我需要我的输出是:

1 2 3 4 5 
6 7 8 9 10 

,而不是

12345 
678910 

我已经有打印出数组窝循环,但我不知道如何打印数字之间的空格。谢谢!

+2

欢迎使用堆栈溢出。请稍后阅读[**关于**](http://stackoverflow.com/tour)页面,并访问描述[**如何提出问题**]的链接(http://stackoverflow.com/questions/how-to-ask)和[**如何创建一个最小,完整和可验证的示例**](http://stackoverflow.com/help/mcve)。提供必要的详细信息,包括您的代码以及相关的错误(如果有的话),将允许大家在这里帮助您解决问题。 –

+0

而不是打印一个数字字符,以同样的方式打印一个“'”字符。在asm中一切都只是ASCII字节(除非你编写代码来处理UTF-8 ...) –

+0

点击你的问题下的“编辑”,粘贴你的代码,保存问题。我们需要查看您的代码才能进行必要的更改。 –

回答

1

让我们假设你有一个循环,即打印编号1-10

mov ax,1 

L_again: 
    push ax 
    call printAX 

    pop ax 
    inc ax 
    cmp ax,10 
    jbe L_again 
ret 

那么所有你需要的是增加一个“打印空间”打印AX

mov ax,1 

L_again: 
    push ax 
    call printAX 
    call printSpace 

    pop ax 
    inc ax 
    cmp ax,10 
    jbe L_again 
ret 

之后可能看起来像这样(例如对于DOS)。对于这样的小功能,你当然可以简单地将几条指令直接添加到循环本身中

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