Assembly 程序集MIPS:反向打印两个字符串
假设您先键入姓名,最后键入姓氏,然后希望程序先打印姓氏,再打印姓名 f、 e 盖布 纽厄尔 纽厄尔 盖布 我试图做到这一点:Assembly 程序集MIPS:反向打印两个字符串,assembly,mips,Assembly,Mips,假设您先键入姓名,最后键入姓氏,然后希望程序先打印姓氏,再打印姓名 f、 e 盖布 纽厄尔 纽厄尔 盖布 我试图做到这一点: .data first: .word second: .word .text .globl main main: li $v0, 8 la $a0, first la $a1, 20 syscall move $s1, $a0 la $a0, second la $a1, 20 syscall l
.data
first: .word
second: .word
.text
.globl main
main:
li $v0, 8
la $a0, first
la $a1, 20
syscall
move $s1, $a0
la $a0, second
la $a1, 20
syscall
li $v0, 4
la $a0, second
syscall
move $a0, $s1
la $a0, 0($s1)
syscall
li$v0,10系统调用 但从输出来看,它给了我: 纽厄尔 纽厄尔
那么,这里的问题是什么?您没有为名称留出足够的空间
.word
只为整数留出足够的空间(2或4个字节,可能是后者)
改用.space
然后,要打印名字,在进行系统调用之前,需要将first
的地址加载到$a0
$s1
没有您认为的值。我将其替换为“first:.space 20”和“second:.space 20”,但它仍然给出了两次姓氏,而不是姓氏后面跟着名字