【发布时间】:2012-02-29 21:54:59
【问题描述】:
如何在 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
【问题讨论】:
标签: assembly arm multidimensional-array