我想在8086 Assembly中打印一个2D数组,但我仍然陷入了分配的最后几步。
例如,我需要输出:
1 2 3 4 5
6 7 8 9 10
而不是
12345
678910
我已经有一个用于打印阵列的嵌套循环,但我不知道如何在数字之间打印空格。谢谢!
答案 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