0

divの直後に行が切れる理由を理解しようとしています。多分私はdivを間違って設定していますか?またはそれを間違って保存しますか?また、合計距離を出力するために呼び出しましたか?

li $t0, 284  #distance in miles from OR to WA
li $t1, 387  #6 hours and 27 minutes, 6 hours = 360 minutes +27 minutes, 387 minutes
li $t2, 5280 #5280 feet in a mile
li $t3, 60   #60 seconds in a minutes

main:
    mult $t0, $t2        #gets the total feet in the 284 miles and places it into $t4
    mfhi $t4

    mult $t1, $t3       #gets the total seconds in the 6 hours an 27 minutes
    mfhi $t5

    div $t4, $t5    #divides the total feet by the total seconds
    mflo    $t6
        li $v0, 1
    move $a0, $t6
    syscall

    addi $v0, $zero, 10 ##system call to leave the program
    syscall         ##exits the program 
4

2 に答える 2

1

最初$v0syscall.

于 2013-02-25T01:16:42.930 に答える
0

問題は、0 で除算していることです。それはどのように可能ですか? さて、積 284*5280=1499520 と 387*60=23220 は 32 ビットに収まります。レジスタの最上位 32 ビットとレジスタmultの最下位 32 ビットを使用して、64 ビット積を生成します。したがって、両方の後に 0です。それでも何らかの理由で、 and を使用しないことにしました。hilohimultshilo

main:また、その後に続くのもおかしいlis。そのため、それらlisはまったく実行されていない可能性があります。

于 2013-02-25T01:40:47.700 に答える