2011-05-04 6 views
5

मुझे पता है कि यह भौतिक पता = सेगमेंट रजिस्टर < < 4 + ऑफसेट रजिस्टर का उपयोग करता है। हालांकि ये दो रजिस्ट्रार 16-बिट हैं, 8086 कैसे 20-बिट प्लस ऑपरेशन को संभाल सकते हैं?सीपीयू वास्तविक मोड में 20-बिट पते की गणना कैसे करता है

उत्तर

5

बस इंटरफ़ेस इकाई खंड रजिस्टरों के होते हैं, योजक 20 बिट पता और शिक्षा प्रीफ़ेच कतार उत्पन्न करने के लिए। एक बार यह पता बीआईयू से बाहर निकलने के बाद, निर्देश और डेटा बाइट स्मृति से प्राप्त किए जाते हैं और वे फर्स्ट इन फर्स्ट आउट 6 बाइट कतार भरते हैं।

"8086_Internal_Block_diagram_enotes.pdf" नामक एक दस्तावेज़ देखें, जिसे Google के माध्यम से आसानी से प्राप्त किया जा सकता है। बस इंटरफेस यूनिट के बारे में अनुभाग, this document भी देखें।

तो प्रोसेसर एक समर्पित आंतरिक 20-बिट रजिस्टर के साथ "मांग पर" इन 20-बिट पते उत्पन्न करता है, यदि आप करेंगे।

+1

मैं देखता हूं, धन्यवाद! इसलिए अनिवार्य रूप से पता गणना पारंपरिक 16-बिट एएलयू (?) – Oxdeadbeef

+1

@ 0xdeadbeef का उपयोग नहीं करती है: सही है, इसका बीआईयू में अपना समर्पित "मिनी-एएलयू" है। – DarkDust

1

जब आप 16 बिट संख्या 4 स्थानों को बाईं ओर स्थानांतरित करते हैं, तो आप अनिवार्य रूप से 20 बिट संख्या बना रहे हैं। ऑफ़सेट तब इंगित करता है कि आप उस सीमा में कितनी दूर जाएंगे। Wikipedia article on Real mode addressing देखें।

उदाहरण:

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

मुझे लगता है कि प्रश्न इस के साथ और अधिक था: चूंकि सभी रजिस्ट्रार 16-बिट हैं, प्रोसेसर 20-बिट मान को कैसे संभाल सकता है जो सामान्य रजिस्टर के लिए बहुत बड़ा है। – DarkDust

+0

@ डार्कडस्ट हां, इस तरह मैंने इसका भी अर्थ लिया। आपका पूरा हो गया है, मैं सिर्फ सवाल को सीधे हल करने की कोशिश कर रहा था। – jonsca

+0

@ डार्कडस्ट, जॉन्स्का, बिल्कुल :) – Oxdeadbeef

संबंधित मुद्दे