Как распечатать 2D-массив в сборке ARM?Я пытаюсь взять каждую строку и затем превратить ее в строку с нулевым символом в конце, но она печатает только первое число.Как мне перейти к следующему номеру?
Мне сказали следующее: для печати массива лучше всего написать подпрограмму, которая перебирает массив, печатая его по одному элементу за раз.printf принимает только один аргумент, и, поскольку на языке ассемблера массив представляет собой просто загрузку чисел, printf напечатает только первый.В качестве альтернативы вы можете написать подпрограмму, которая превращает доску в строку с нулевым окончанием.В любом случае подпрограмма может как напечатать доску, так и красиво отформатировать ее.
Но я понимаю только, как это сделать так:
AREA Countdown, CODE, READONLY
IMPORT main
IMPORT getkey
IMPORT sendchar
IMPORT printf
EXPORT start
start
LDR R3, = teststr
LDR R4, = array
wh1 LDRB R0, [R4]
CMP R0, #0
BEQ stop
ADD R0, R0, #0X30
STRB R0, [R3]
ADD R3, R3, #1
ADD R4, R4, #1
B wh1
stop B stop
AREA Strings, DATA, READWRITE
teststr DCB "",0
array DCD 6, 3, 8, 2, 5, 2, 9, 1
DCD 3, 7, 2, 8, 5, 7, 2, 6
DCD 2, 4, 7, 4, 2, 6, 7, 4
DCD 1, 9, 3, 2, 9, 5, 6, 8
DCD 7, 5, 3, 7, 5, 8, 2, 1
END