在.word指令中使用标签

时间:2018-07-30 20:37:32

标签: assembly mips

所以我希望输出为17,这是存储在num2地​​址中的值。 我正在尝试通过num1的地址到达它。它给我的输出是某种地址。 我的问题是如何通过num1中的.word标签达到num2的值? 谢谢

.macro print_int (%x)
li $v0, 1
add $a0, $zero, %x
syscall
.end_macro

.data 
num1: .word num2
num2: .word 17

.text 
.globl main

main:                                   
la $t1, num1
lw $t1, 0($t1)

Print: # print to consule
print_int($t1)

li $v0, 10                      # Exit program
syscall 

1 个答案:

答案 0 :(得分:1)

好,知道了,它基本上是指向指针的指针,因此只需再次添加lw即可,并且按预期工作。

.macro print_int (%x)
li $v0, 1
add $a0, $zero, %x
syscall
.end_macro

.data 
num1: .word num2
num2: .word 17

.text 
.globl main

main:                                   
la $t1, num1
lw $t1, 0($t1)
lw $t1, 0($t1) 

Print: # print to consule
print_int($t1)

li $v0, 10                      # Exit program
syscall