2011-05-04 12 views

cevap

5

Otobüs Arayüz Birimi kesimi kaydeder oluşur, toplayıcı 20 bitlik adres ve buyruk ön yüklemesi kuyruğu oluşturmak için. Bu adres BİG'den gönderildikten sonra, komut ve veri baytları bellekten getirilir ve bir İlk Giren İlk Çıkışı 6 bayt kuyruğu doldurur.

Google'dan kolayca bulunabilen "8086_Internal_Block_diagram_enotes.pdf" adlı bir belgeye bakın. Ayrıca, Bus Interface Unit ile ilgili bölümü this document'a bakın.

Bu nedenle, işlemci 20-bit adresleri "isteğe bağlı" olarak, özel bir 20 bitlik kayıtla üretecektir, eğer yapacaksanız.

+1

Anlıyorum, teşekkürler! Bu nedenle, esasen adres hesaplaması, geleneksel 16 bit ALU (?) – Oxdeadbeef

+1

@ 0xdeadbeef'i kullanmaz: Doğru, BIU'da kendine özel "mini-ALU" vardır. – DarkDust

1

16 bitlik bir sayıyı 4 yere sola kaydırdığınızda, aslında 20 bitlik bir sayı oluşturursunuz. Ofset daha sonra o aralığa ne kadar ilerleyeceğinizi gösterir. Wikipedia article on Real mode addressing'a bakın.

Örnek:

0x0001 << 4 -> 0x00010 (5 sets of 4 bits in each hex digit -> 20 bits) 
+0

Sorunun daha fazla olduğunu düşünüyorum: tüm yazmaçlar 16 bit olduğu için, işlemci normal bir kayıt için çok büyük olan 20 bitlik bir değeri nasıl işleyebilir? – DarkDust

+0

@DarkDust Evet, ben de böyle yorumladım. Seninki daha eksiksiz, sadece soruyu doğrudan sormaya çalışıyordum. – jonsca

+0

@ DarkDust, jonsca, tam olarak :) – Oxdeadbeef

İlgili konular