2016-04-05 37 views
0

Aşağıdaki kodu winMIOS64'e yüklemeyi denedim, ancak bu işlem 2. satırda bana bir hata verdi, çünkü sorunu tanımlamama yardımcı olabilir ve başka yönergeler değiştirilmeli ?? !!MIFS kodunu doğru olarak winMIPS64'e yükleme

1. ilk iletişim söyledi: Aşağıdaki

.data 
     m1:.asciiz "enter the total number of digits" 
     m2:.asciiz "enter total number of digits" 
     m3:.asciiz "entered number:" 
     m4:.asciiz "sum of product:" 
     m5:.asciiz "not an armstrong number" 
.text 
main: 
     addi.d $sp,$sp,-20 
     sd $ra,0($sp) 
     sd $a0,4($sp) 
     sd $a1,8($sp) 
     sd $a2,12($sp) 
     sd $a3,16($sp) 
     jal start 

start: ld $a0,0($sp) #restore a0 from stack 
     ld $a1,4($sp) 
     ld $a2,8($sp) 
     ld $a3,12($sp) 
     ld $ra,16($sp) 
     addi.d $sp,$sp,20 #restore stack pointer 
     jr $ra #return to calling routing 
     halt 

kodu indirilmemiş ederken hatalar bir iletişim ortaya çıktı 1 pass - on line hatayı 2

2. ikinci iletişim kutusu: geçişte algılanan hatalar 1

+1

_ "bana bir hata verdi 2. satırda "_ Öyleyse sorunuza tam olarak hata mesajını eklemelisiniz. – Michael

+0

Bu program kodu kendi ortamına yüklemedi, bana iletiyi ilet bu iletiyi verdi –

+0

Hangi iletiyi? Hata mesajını verbatim'e kopyalamanız gerekecek, çünkü insanların bir programı başlatıp sizin için denemelerini bekleyemezsiniz. –

cevap

1

Hata büyük olasılıkla yanlış hizalanmış adres.

Haddini 2 çifte kelimeyi depolamaya çalıştığınız:

sd $ra, 0($sp) 

Ama hizalanmış çift kelimeyi (8 katları) 'dir bir adres iletmediğinizi. Eğer çift kelimeleri depolamak Çünkü

, her ayrı 8 bayt olmalı ve yerine sadece 20 ait 5 kasalar için yığınında 40 bayt tahsis edilmelidir:

addi.d $sp, $sp, -40