2010-02-22 33 views
12

ben taban adresi $ at a0 ve seti $ t2 kapalı bir bellekten bir değer yüklemek istiyorsanız, ben yapamam neden şu:MIPS yük kelime dizimi

lw $s2, $a1($t2) 

yani ne olduğunu Yukarıdaki ifadenin karşılığı mı?

cevap

14

Bunu yapamazsınız, çünkü böyle bir şeyi destekleyen bir MIPS yönergesi kodlaması yoktur. Sen ek kendiniz yapmak gerekir:

add $a2, $a1, $t2 
lw $s2, 0($a2) 

lw talimat kodlama şuna benzer:

sssss kaynak kayıt numarasıdır
1000 11ss ssst tttt iiii iiii iiii iiii 

, ttttt hedef sicil numarası ve iiiiiiiiiiiiiiii hemen gerçekleşir . Hafıza adresini oluşturmak için iki register kullanan kodlamada (ve alternatif komut kodlamalarının olmadığı) yer yoktur. Yukarıdaki örnekten kodlanmış alacağı belirli makine talimat:

1000 1100 1101 0010 0000 0000 0000 0000 

acil 0 olduğundan, $s218 kayıt olup $a26 kayıt olduğunu.

+2

Memeleri severim ... çok basit – Polaris878

+1

@ Polaris878, RISC için Yay! –