如何在MIPS中创建char数组并访问这些字符?我正在做一个项目,其中一部分就是这样做。我理解如何使用整数并且无法在线找到关于如何处理chars的任何参考,特别是我试图移植...
static char hexdigits[16] = "0123456789ABCDEF";
继承我失败的尝试:
hexarray: .word '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' #declare memory space for our hex array
编辑:如果有人可以提供一个例子如何打印出其中一个项目,那将非常有帮助(你可以根据自己的意愿修改代码)。因为我只是得到一个内存地址错误。
答案 0 :(得分:11)
static char hexdigits[16] = "0123456789ABCDEF";
可以翻译成:
.data
hexdigits: .byte '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
或者
.data
hexdigits: .ascii "0123456789ABCDEF"
我们可以使用
访问元素la $t0, hexdigits
lb $t1, 0($t0) # $t1 = hexdigits[0]
lb $t2, 1($t0) # $t2 = hexdigits[1]
您可以使用系统调用打印元素(如果您的模拟器支持它。大部分都可以)
la $t0, hexdigits # address of the first element
lb $a0, 10($t0) # hexdigits[10] (which is 'A')
li $v0, 11 # I will assume syscall 11 is printchar (most simulators support it)
syscall # issue a system call