在 8086 Assembly 中打印的每个数字之间打印空格

Print spaces between every numbers that's printed in 8086 Assembly

我想在 8086 Assembly 中打印一个二维数组,但我卡在了作业的最后几步。

例如,我需要输出为:

1 2 3 4 5
6 7 8 9 10

而不是

12345
678910

我已经有一个用于打印数组的嵌套循环,但我不知道如何打印数字之间的空格。谢谢!

假设您有一个循环,打印数字 1-10

mov ax,1

L_again:
    push ax
    call printAX

    pop ax
    inc ax
    cmp ax,10
    jbe L_again
ret

那么你只需要在打印 AX

之后添加一个 "print a space"
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