Nach jeweils 5 Elementen sollte das nächste Element in der nächsten Zeile gedruckt werden. Ich darf keine Leerstelle für den Abstand zwischen den Elementen verwenden. Ich habe versucht, GoToXy zu verwenden, aber ich habe Probleme. Alle Elemente in der ersten Reihe haben 5 Abstände zwischen ihnen, beginnend von der zweiten Reihe müssen alle Elemente zu dem darüber liegenden ausgerichtet werden.Wie alle Elemente in einem Array in der folgenden Ausgabe ausgeben?
gewünschte Ausgabe:
94 2 67 57 7
40 58 48 73 94
16 77 88 16
Ausgabe von meinem Code: (Alles auf der gleichen Linie mit 5 Räume zwischen ihnen gedruckt wird.)
94 2 67 57 7 40 58 48 73 94 16 77 88 16
Mein Code ist:
INCLUDE Irvine32.inc
.data
count = 14
array WORD count DUP(?)
.code
main PROC
push OFFSET array
push COUNT
call ArrayFill
call DisplayArray
exit
main ENDP
;-----------------------------------------------------------------------------------------
ArrayFill PROC
push ebp
mov ebp,esp
pushad ; save registers
mov esi,[ebp+12] ; offset of array
mov ecx,[ebp+8] ; array size
cmp ecx,0 ; ECX == 0?
je L2 ; yes: skip over loop
L1:
mov eax, 100
call RandomRange ; from the link library
mov [esi],ax
add esi,TYPE WORD
loop L1
L2: popad ; restore registers
pop ebp
ret 8 ; clean up the stack
ArrayFill ENDP
;---------------------------------------------------------------------------------------
DisplayArray PROC
mov eax, 0
mov esi, 0
mov ecx, COUNT
mov dh, 0
call GoToXy
mov dl, 5
L1:
mov ax, array[esi * TYPE array]
call WriteDec
call GoToXy
add dl, 5
inc esi
loop L1
call CrlF
ret
DisplayArray ENDP
END main
Welchen Compiler benutzen Sie? –
MASM in Visual Studio 2015. –
Sie sind nicht berechtigt, eine Zeichenfolge von leeren Leerzeichen zu verwenden? Was ist mit Tabs (ASCII 9) und Zeilenumbrüche (ASCII 13 + ASCII 10)? –