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

时间:2016-10-24 03:17:11

标签: assembly space

我想在8086 Assembly中打印一个2D数组,但我仍然陷入了分配的最后几步。

例如,我需要输出:

1 2 3 4 5
6 7 8 9 10

而不是

12345
678910

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

1 个答案:

答案 0 :(得分:1)

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

require 'stringio'

class FooIO < StringIO
        def puts s
                super unless s.start_with? "WARN"
        end
end

def silence
  $stdout = temp_out = FooIO.new
  yield
  temp_out.string
ensure
  $stdout = STDOUT
end

def foo
        puts "INFO : Hello World!"
        puts "WARN : Oops.. This is a warning..."
        puts "ALRT : EVERYONE IS GOING TO DIE!!!"
end

out = silence { foo }

puts out

然后您只需在打印AX

后立即添加“打印空间”
mov ax,1

L_again:
    push ax
    call printAX

    pop ax
    inc ax
    cmp ax,10
    jbe L_again
ret

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

mov ax,1

L_again:
    push ax
    call printAX
    call printSpace

    pop ax
    inc ax
    cmp ax,10
    jbe L_again
ret