1
我以为我正确实现了一个while循环,但为什么我没有得到任何输出?汇编语言作业问题
我的书并不是那么棒,我一直无法在网上找到资源。
##### The Data Segment #########
.data
strFirstNumber: .asciiz "Enter the first number (0-63): "
strSecondNumber: .asciiz "Enter the second number (0-63): "
strError: .asciiz "That number is not in the 0-63 range.\n\n"
#### The Text Segment ##########
.text
.globl main
main:
li $t2, 0
#First Number
li $10, 64
li $v0, 4
la $a0, strFirstNumber
syscall
li $v0, 5
syscall
blez $v0, in_error
bgeu $v0, $10, in_error
j DoneIf
in_error:
li $v0, 4
la $a0, strError
syscall
li $v0, 4
la $a0, strFirstNumber
syscall
li $v0, 5
syscall
bltz $v0, in_error
bgeu $v0, $10, in_error
DoneIf:
move $t0, $v0
#Second Number
li $v0, 4
la $a0, strSecondNumber
syscall
li $v0, 5
syscall
bltz $v0, in_error2
bgeu $v0, $10, in_error2
j DoneIf2
in_error2:
li $v0, 4
la $a0, strError
syscall
li $v0, 4
la $a0, strSecondNumber
syscall
li $v0, 5
syscall
blez $v0, in_error2
bgeu $v0, $10, in_error2
DoneIf2:
move $t1, $v0
Loop:
beq $t2, $t0, Exit
add $t3, $t1, $t1
add $t2, $t2, 1
j Loop # go to Loop
Exit:
li $v0, 1
add $a0, $0, $t3
syscall
jr $31
您可能想提一下具体问题是什么 - 代码实际运行?你会得到预期的提示吗?它接受输入吗?接下来发生什么 ?为了调试它,你尝试了什么? – 2011-02-06 20:54:05
谢谢。代码运行,我可以输入第一个和第二个数字。但我无法让它显示结果。输入第二个数字后它不显示任何内容。代码的想法是做一个while循环来模仿乘法。我尝试过单步调试,但我无法弄清楚我做错了什么。 – bdmflyer 2011-02-06 21:00:14