После каждых 5 элементов следующий элемент должен быть напечатан на следующей строке. Мне не разрешено использовать строку пустых пространств для пространства между элементами. Я пытался использовать GoToXy, но у меня проблемы. Все элементы в первой строке имеют 5 пробелов между ними, начиная со второй строки, все элементы должны быть выровнены с надписью над ней.Как выводить все элементы в массиве в следующем выпуске?
Желаемая Выход:
94 2 67 57 7
40 58 48 73 94
16 77 88 16
Выход из моего кода: (все печатается на одной линии с 5 промежутками между ними.)
94 2 67 57 7 40 58 48 73 94 16 77 88 16
Мой код:
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
Какой компилятор вы используете? –
MASM в Visual Studio 2015. –
Вам не разрешено использовать пустую строку? Как насчет вкладок (ascii 9) и новой строки (ascii 13 + ascii 10)? –