Direct addressing'e bitler nerden geliyor?

Başlatan loves_oi, 18 Mart 2014, 12:03:30

loves_oi

Anladığım kadarıyla data memory'deki her adres 8 bit genişliğinde yani her register 8 bit genişliğinde(tüm pic'ler için).

Ancak direct addressing mode'unda şöyle diyor :
- Uses 7 bits of 14 bit instruction to identify a register file address
- 8th and 9th bit comes from RP0 and RP1 bits of STATUS register.

Yani bir adres göstermek istiyoruz 8 bit'lik register ile böylece data memory'deki gerekli adres gösterilecek. Bu 8 bit'in lower 7'bit'i instruction'ın lower-7 bitinden geliyor. Yani register'ımızda 1 bit lik yer kalıyor.
Ancak yukarıda 8. ve 9. bit'den bahsediyor???
8.bit ile register<0,7> 'ın 7.biti mi demek istiyor ? Öyleyse 9.bit ne oluyor?
Veya 10 bit'lik bir şey var da ben mi bilmiyorum(not:10 bitlik hiçbir şey görmedim notlarda ve ayrıca yukarıda tüm register'lar 8 bit'dir diyor)?

Şimdiden teşekkürler..

loves_oi

Direct addressing için , OpCode'dan yani instruction'dan 7 bit geliyormuş ve ayrıca 2 bit de bank select bit'i için geliyormuş yani toplam 9 bit'miş.

Indirect addressing için ise , 8 bit FSR register'ından geliyormuş 1 bit de Status register'ının 7. bit'i IRP geliyormuş böylece 9bit'lik bir effective address elde ediliyormuş.

Bunu anladım ama hala oturmayan bir şeyler var yani tüm register'lar 8 bit olmalı diye bir restriction koymuştuk önce şimdi ise 9 bitlik bir effective adresten söz ediyoruz.

z

#2
Bir registerin 8 bit olması ayrı bir şey, bu registerin adresinin 9 bit olması ayrı bir şey.

Register ya da ram alanının bit uzunluğu kaydedilebilecek verinin max değerini belirler.

Adresleme açısından bakılırsa registerler adreslenebilir alanın her hangi bir yerine serpiştirilebilir.

Örneğin 0x100 adresine yerleşmiş bir registere ya da rama  ulaşabilmek için 9 bite ihtiyaç duyulur. Zira 8 bit adres 0x00...0xFF alanını kapsar.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com