1
mips 어셈블리를 사용하려고하는데 분기 메커니즘에 문제가 있습니다. 내 코드의이 "짧은"부분에서 오류가있는 곳입니다 (필자는 생각합니다). 필자가 입력하는 숫자는 중요하지 않으며 항상 func1로 점프합니다. 누군가 나를 도울 수 있습니까? 감사합니다.어셈블리 밉 분기 오류
코드 :
.text
.globl main
main:
.data
param: .float 0
val_1: .float 1
val_2: .float 2
val_3: .float 3
texto: .asciiz "type 1 for func 1, 2 for func 2 and 3 for func 3: \n"
.text
la $a0, texto #print
li $v0, 4
syscall
li $v0, 6 #read
syscall
la $t0, ($v0) #from $v0 to $t0
beq $t0, 1, func1 #branch for func1
beq $t0, 2, func2 #branch for func2
beq $t0, 3, func3 #branch for func3
j end
'$ v0 == 6'이 (가)'syscall '이'read_float' 인 경우 왜'($ v0)'가 유효한 주소로 설정 되길 기대합니까? – EOF
어떻게해야할까요?'la $ t0, ($ v0)'? 옵션이 1, 2, 3 (모두 정수) 인 경우 syscall 6 ('read_float')을 사용하는 이유는 무엇입니까? – Michael
정확히 그 오류입니다. 고맙습니다! –