Mips cpu da jump adresi

Başlatan yamak, 10 Mart 2012, 18:17:30

yamak

Mips cpu da jump adresinin hesaplanmasında biraz kafam karıştı.Meselama ben benim tasarladığım cpu için bir de kod dönüştürücü tasarladım.Programımı yazarken de bazı yerlere loop1,loop2.. diye etiketler koyup oralara sıçramalar yapacam.Ben bu etiketleri koyarken tasarladığım kod dönüştürücüye o an ki PC nin değerini hesaplatıp programın ilerleyen kısmında jump loop1 dediğimde hex kodunu o hesapladığım değere göre mi oluşturtmam gerekiyo?

z

Jump komutunun bir kac cesiti var.

Bu yazacaklarim genel islemciler icin.

jmp  ADR

Burada ADR, program hafizasindan okunan degerdir. Yani jmp "opcode" unu takip eden adres verisidir. Bu komut isletildiginde PC, ADR degerini alir.
-------------------------

jmp REL_ADR

Burada REL ADR degeri, ilk ornekteki gibi program hafizasindan okunur ancak jmp edilecek adres PC+REL_ADR dir. REL_ADR isaretli sayi oldugundan PC yakinlarinda ileri yada geri sicrama yapar.

-------------------------
jmp  ACC

Bu yapida, ACC olarak adlandirilan registerin icerigi olan adrese sicranir.

-------------------------

jmp MEM_ADR

Bu yapida ise Ramin MEM_ADR gozundeki adres okunur ve PC icine aktarilir.

Bir islemcide bu jmp yapilarinin hepsi olacak diye sart yok.


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