mips komut seti

Başlatan yamak, 04 Mart 2012, 17:53:41

yamak

mips komutlarında add, addi gibi komutların tasarım olarak bi farkı var mı? Sonuçta işaretli toplama ile işaretsiz toplama aynı şekilde yapaılıyo sadece sonucun yorumlanış şekli farklı.Yani mesela işaretli "11111111" -1 işaretsiz olunca da 255.Bu durumda benim tasarımımda işaretli toplama için bi değişiklik yapmam gerekiyo mu?

z

#1
Bahsettigin MIPS setini bilmiyorum. Genel konusacak olursak;

2'complement gosterimde toplama lojigi degismez. Ancak overflow flaginin etkilesimi acisindan isaretli sayilari toplayan lojik ile isaretsiz saylari toplayan lojik farklidir.
Isaretsiz sayilari toplarken overflow flag ise yaramadigindan bu flagi etkileyen lojigi de hem isaretsiz hem de isaretli sayilar icin ayni yapabilirsin. Bu durumda toplama lojigi sayilarin isaretli yada isaretsiz olmasindan bagimsiz olarak tamamen ayni olacaktir.

ADD, ADDI gibi komutlar verilerin nereden alinip kullanilacagi ile ilgili.

Ornegin ADDI komutu Add Immediate anlamina geliyormus. Bu toplanacak verinin sayisal deger olarak program alanindan alinacagini soyluyor ve bu durum toplama islemini ilgilendirmiyor.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak

Tamam hocam teşekkür ederim.Ben farklı anlamışım.

z

Gene de komut setine iyi bak. Ornegin DSP islemcilerde oldugu gibi toplama isleminde saturasyon durumlarina gore sonuc degisecek ise toplama lojigin de farklilik gundeme gelebilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

yamak

Hocam bi de benim kafamı karıştıran konu şu. mesela addi r1,r2,#-10 dedim. r2 nin değeri de önceden 5 olsun. bu durumda r1 in değeri - 5 olur. İşlemcinin de 8 bitlik olduğunu varsayarsak r1=11111011 olur. Ama bu işaretsiz olarak düşündüğümüzde hem 251 e eşittir. Daha sonraki işlemlerde r1 in değeri -5 olarak mı değerlendirilecek 251 olarak mı?yani daha sonra ben addi r4,r1,#10 dediğimde r4 ün değeri ne olacak?

carirt

pic32 de
r0-r31
registerleri genel amaçlı tanımlıdır
c dilinde müdahale edilemiyor

carirt

MIPS® Architecture For Programmers
Volume II-A: The MIPS32® Instruction
Set

elinde bu doküman varmı ben ondan faydalanıyorum mips in sitesinde üye ol indir güncel dökümanı

z

Alıntı yapılan: yamak - 04 Mart 2012, 18:27:24
Hocam bi de benim kafamı karıştıran konu şu. mesela addi r1,r2,#-10 dedim. r2 nin değeri de önceden 5 olsun. bu durumda r1 in değeri - 5 olur. İşlemcinin de 8 bitlik olduğunu varsayarsak r1=11111011 olur. Ama bu işaretsiz olarak düşündüğümüzde hem 251 e eşittir. Daha sonraki işlemlerde r1 in değeri -5 olarak mı değerlendirilecek 251 olarak mı?yani daha sonra ben addi r4,r1,#10 dediğimde r4 ün değeri ne olacak?

Eger sen isaretli sayilarla calismak istiyorsan;

-5 sayisi   11111011 iken
251 sayisi  0000000011111011 dir.

251 8 bitle ifade edilemez.

Fakat isaretsiz sayilarla calisacaksan 251 sayisi 11111011 dir.

Seni hataya surukleyen isaretli 251 sayisinin 8 bitle ifade edildigi yanlisi. Halbuki 8 bitte en buyuk sayimiz 127 dir,
Bana e^st de diyebilirsiniz.   www.cncdesigner.com