无法推动堆叠,mips

时间:2013-11-06 21:39:50

标签: printing stack mips

我只是试图将这个'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

1 个答案:

答案 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