我只是试图将这个'a'打印到屏幕上,但是首先推送到堆栈以便我可以检查是否在推送到堆栈时是否完成,似乎我不能,因为它打印出一个奇怪的字符每次。怎么了?
.data
char: .word 'a'
.text
.globl main
main:
la $t0, char
sub $sp, $sp, 4 #allocate byte for stack
sb $t0, 0($sp) #push to stack
la $t1, 0($sp) #I wasnt able to print the top of the stack directly so I tried this
li $v0, 11
la $a0, 0($t1) #It isnt working anyway.. Prints É
syscall
add $sp, $sp, 4
jr $ra
答案 0 :(得分:-1)
我正在尝试我所做的每一种方式来使其成功。仍然不知道为什么这个有效,但不管它做什么。
.data
char: .word 'a'
.text
.globl main
main:
la $t0, char
addi $sp, $sp, -4 #allocate byte for stack
sw $t0, 0($sp) #push to stack
lw $t1, 0($sp) #load from stack
li $v0, 4
la $a0, 0($t1) #It now puts 'a'
syscall
add $sp, $sp, 4
jr $ra