कंप्यूटर एक बाइट के डेटा प्रकार का निर्धारण कैसे करता है?


31

उदाहरण के लिए, यदि कंप्यूटर ने 10111100RAM के एक विशेष बाइट पर संग्रहीत किया है, तो कंप्यूटर इस बाइट को पूर्णांक, ASCII वर्ण, या कुछ और के रूप में कैसे समझाता है? क्या प्रकार का डेटा आसन्न बाइट में संग्रहीत किया जाता है? (मुझे नहीं लगता कि यह मामला होगा क्योंकि इससे एक बाइट के लिए दो बार अंतरिक्ष की मात्रा का उपयोग किया जाएगा।)

मुझे संदेह है कि शायद एक कंप्यूटर को भी डेटा के प्रकार का पता नहीं है, जो केवल प्रोग्राम का उपयोग करके जानता है। मेरा अनुमान है कि क्योंकि रैम आर एएम है और इसलिए क्रमिक रूप से नहीं पढ़ा जाता है, कि एक विशेष कार्यक्रम सीपीयू को एक विशिष्ट पते से जानकारी प्राप्त करने के लिए कहता है और कार्यक्रम यह निर्धारित करता है कि इसका इलाज कैसे किया जाए। यह प्रोग्रामिंग चीजों के साथ फिट होता प्रतीत होगा जैसे कि टाइपकास्ट करने की आवश्यकता।

क्या मैं सही रास्ते पर हूं?


4
एक साइड नोट के रूप में: यदि आप प्रकारों के बारे में बात कर रहे हैं, तो आपको इसे भाषा के संदर्भ में करना चाहिए। यह संकलक पर छोड़ दिया जाता है कि वह उस तरह की चीज़ (प्रतीक, चेक प्रकार, संचालन, कास्टिंग, पता राम, आदि) को संभाल सके। CPU और RAM केवल बाइट्स को जानता है
jean

4
बाइट का डेटा प्रकार एक बाइट है। इसके अलावा, कंप्यूटर को कुछ भी पता नहीं है। एक प्रोग्राम एक बाइट या बाइट्स के एक समूह को एक विशेष डेटा प्रकार के रूप में व्याख्या कर सकता है, और उन पर संचालन करने का प्रयास कर सकता है, लेकिन वहां कोई प्रतिबंध नहीं है। बाइट्स के एक ही समूह को एक से अधिक डेटा प्रकारों के रूप में व्याख्या किया जा सकता है (जैसे कि मूल्य को इंगित करने के लिए कास्टिंग बिंदु, सी-जैसे यूनियनों, आदि)। यह रैम अनुक्रमिक रूप से नहीं पढ़ा जाता है वास्तव में प्रासंगिक नहीं है। - यह अधिक है क्योंकि रैम सामान्य उद्देश्य है। - उदाहरण के लिए रजिस्टरों को क्रमिक रूप से नहीं पढ़ा जाता है, लेकिन वे टाइप किए जाते हैं।
BrainSlugs83

5
खुद के लिए बेशर्म प्लग, लेकिन यह सवाल मूल रूप से प्रोग्रामर एसई पर लगभग एक महीने पहले पूछा गया था। यहां मेरा जवाब है । इस बिंदु पर यह लंबे समय तक है, लेकिन यह कई अलग-अलग कोणों से हमला करता है।
शाज़

2
इस तथ्य का एक उपयोगी परिणाम यह है कि हार्डवेयर डेटाटाइप-अज्ञेयवादी है कि एक एकल बाइट (या शब्द, आदि) को एक प्रोग्राम द्वारा कई तरीकों से व्याख्या किया जा सकता है। विशेष रूप से, एक पूर्णांक के रूप में अस्थायी रूप से अस्थायी रूप से व्याख्या करने के लिए तेजी से उलटा वर्गमूल की गणना करने के लिए उपयोग किया जाता है ।
अनूइद

@ BrainSlugs83, क्या आप इसे उत्तर में परिवर्तित करने पर विचार कर सकते हैं?
DW

जवाबों:


38

आपका शक सही है। CPU आपके डेटा के शब्दार्थों की परवाह नहीं करता है। कभी-कभी, हालांकि, इससे फर्क पड़ता है। उदाहरण के लिए, कुछ अंकगणितीय संक्रियाएं अलग-अलग परिणाम उत्पन्न करती हैं जब तर्कों को शब्दबद्ध या अहस्ताक्षरित किया जाता है। उस स्थिति में आपको सीपीयू को बताने की आवश्यकता है जो आपकी व्याख्या करता है।

यह प्रोग्रामर पर निर्भर है कि वह अपने डेटा का क्या अर्थ रखता है। सीपीयू केवल आदेशों का पालन करता है, उनके अर्थ या लक्ष्यों से अनजान है।


1
"जब तर्कों को शब्दबद्ध या अहस्ताक्षरित किया जाता है" के बारे में, तो सीपीयू को कैसे पता चलेगा? सीपीयू संचालन बस पैरामीटर बाइट्स को देखता है और उस प्रकार के डेटा प्रकार के संदर्भ जागरूकता की कमी है। आप उपयुक्त सीपीयू ऑपरेशन (या आपका कंपाइलर करता है) का चयन करके डेटा प्रकार लगाते हैं।
शिव

4
@ शिव ऐसे मामलों में, सीपीयू को वास्तव में हस्ताक्षरित संख्या बनाम अहस्ताक्षरित संख्याओं को संसाधित करने के लिए एक अलग निर्देश जारी किया जाता है। ओपी के संदेह के अनुसार, कार्यक्रम उन विवरणों को प्रदान करने के लिए बाध्य है, क्योंकि सीपीयू अनजान है।
कॉर्ट अमोन -

2
जब तक मैं खुद को याद करता हूं, तब तक मैं कंप्यूटर के साथ काम कर रहा हूं, और भले ही मुझे पता है कि सीपीयू उच्च स्तर के निर्माण के बारे में परवाह नहीं करता है जो हम उच्च स्तर की प्रोग्रामिंग पर उपयोग करते हैं, लेकिन अवधारणाओं का यह अलगाव मुझे समय-समय पर दूर करता है।
लौपाक्स

1
@Loupax ठीक है, वास्तव में निम्न-स्तरीय असेंबली के साथ काम करना काफी हद तक मदद करता है - यहां तक mov al, 42कि उच्च-स्तरीय भी है - यह स्पष्ट है कि केवल एक ही संभव निर्देश है जिसे यह कॉल कर सकता है, लेकिन यह अभी भी कुछ हद तक सार है। हालांकि, mov.8 al, 42स्पष्ट रूप से उपयोग करने से यह दर्द स्पष्ट रूप से स्पष्ट हो जाता है :)
लूआन

1
@ शिव: मैं यह नोट करना चाहूंगा कि ऐसी मशीनें हैं जहां मेमोरी में डेटा टाइप किया जाता है। इन्हें टैग किए गए मेमोरी आर्किटेक्चर (या केवल टैग किए गए आर्किटेक्चर) कहा जाता है, लेकिन वे नियमित रूप से नियमित रूप से आर्किटेक्चर के रूप में सफल नहीं हुए हैं क्योंकि अब हम ज्यादातर असेंबली के बजाय संकलित भाषाओं में प्रोग्राम करते हैं और कंपाइलर टाइपिंग का ध्यान रखते हैं। देखें: en.wikipedia.org/wiki/Tagged_altecture
slebetman

14

जैसा कि दूसरों ने पहले ही उत्तर दिया है, आज के सामान्य सीपीयू को यह नहीं पता है कि किसी दिए गए मेमोरी की स्थिति क्या है; सॉफ्टवेयर तय करता है।

हालांकि, अन्य संभावनाएं हैं। उदाहरण के लिए लिस्प मशीनें एक टैग की गई वास्तुकला का उपयोग करती हैं जो प्रत्येक मेमोरी पोजीशन के प्रकार को संग्रहीत करती हैं; इस तरह से हार्डवेयर स्वयं उच्च स्तरीय भाषाओं के कुछ काम कर सकता था।

और अब भी, मुझे लगता है कि आप एक ही सिद्धांत का पालन करने के लिए इंटेल, एएमडी, एआरएम और अन्य आर्किटेक्चर में एनएक्स बिट पर विचार कर सकते हैं : हार्डवेयर स्तर पर अंतर करें कि क्या किसी दिए गए मेमोरी ज़ोन में डेटा या निर्देश हैं।

इसके अलावा, केवल पूर्णता के लिए, हार्वर्ड आर्किटेक्चर में (कुछ माइक्रोकंट्रोलर की तरह) डेटा और निर्देश शारीरिक रूप से अलग हो जाते हैं, इसलिए सीपीयू को यह पता है कि यह क्या पढ़ रहा है।

इसमें Quora प्रश्न में कुछ टिप्पणी है कि कैसे टैग की गई मेमोरी ने काम किया, इसका प्रदर्शन निहितार्थ और निधन, और बहुत कुछ।


टैग की गई वास्तुकला एक दिलचस्प नोट है। क्या यह काफी तेज होगा?

4

हाँ। कार्यक्रम को सिर्फ मेमोरी से बाइट मिलती है और यह इसकी व्याख्या कर सकता है, लेकिन यह चाहता है।


3

किसी प्रकार के एनोटेशन नहीं हैं।
रैम शुद्ध डेटा स्टोर करता है, और फिर प्रोग्राम परिभाषित करता है कि क्या करना है।

सीपीयू रजिस्टर के साथ थोड़ा कठिन है, अगर आपके पास दिए गए प्रकार (जैसे एफपीयू) के रजिस्टर हैं, तो आप बताएं कि अंदर क्या है।
फ्लोटिंग पॉइंट रजिस्टरों पर संचालन स्पष्ट रूप से टाइप किए गए डेटा का उपयोग कर रहे हैं। आप या आपके संकलक बताते हैं कि वहां क्या और कब डाला जाना चाहिए, इसलिए आपको ऐसी स्वतंत्रता नहीं है।
रैम में अंतर्निहित डेटा पर कंप्यूटर कोई धारणा नहीं बनाता है, और एक अपवाद के साथ रजिस्टरों में - सीपीयू में टाइप किए गए रजिस्टर्स ज्ञात प्रकार के होते हैं, इससे निपटने के लिए अनुकूलित। यह केवल यह दिखाने के लिए है कि ऐसी जगहें हैं जहाँ डेटा अपेक्षित प्रकार का है, लेकिन कुछ भी आपको कास्टिंग स्ट्रिंग्स से फ़्लोट करने और उन्हें गुणा करने से नहीं रोकता है।

प्रोग्रामिंग भाषाओं में आप टाइप करते हैं, या उच्च स्तर की भाषाओं में डेटा सामान्य है और ओवरहेड के साथ अंदर क्या संकलक / दुभाषिया / वीएम एन्कोड होता है।
उदाहरण के लिए C में आपका पॉइंटर टाइप बताता है कि डेटा का क्या करना है, इसे कैसे एक्सेस करना है।

बेशक आप स्ट्रिंग (वर्णों) को पढ़ सकते हैं और फिर फ्लोटिंग पॉइंट वैल्यू, पूर्णांक और उन्हें मिश्रण के रूप में समझ सकते हैं।


यहां तक ​​कि एक FPU रजिस्टर में बिट्स हमेशा फ्लोटिंग पॉइंट वैल्यू का प्रतिनिधित्व नहीं करते हैं। पुराने दिनों में (शायद अब और अधिक नहीं?), एक सामान्य अनुकूलन था सामान्य उद्देश्य / पूर्णांक रजिस्टर (32-बिट) की तुलना में तेजी से डेटा की प्रतिलिपि बनाने के लिए फ्लोटिंग पॉइंट रजिस्टर (64-बिट या बड़ा) का उपयोग करना, दो बार बड़ा होने के नाते, वे आम तौर पर दो बार तेजी से डेटा कॉपी करने में सक्षम थे।
सेठ

1
मैं आपसे पूरी तरह सहमत हूँ, इसीलिए मैंने लिखा है कि कोई व्यक्ति वहाँ तार को धक्का दे सकता है। और उसी समय में लोगों ने पूर्णांक पर फ्लोटिंग पॉइंट ऑपरेशन किए, क्योंकि यह तेज था। मुद्दा यह है!
ईविल

@HCBPshenanigans ऐसे निर्देश हैं जो फ्लोटिंग-पॉइंट मानों में हेरफेर करते हैं। यदि FADD का उपयोग किया जाता है, तो यह केवल समझ में आता है कि (4,8, या 10) -बाइट मेमोरी के समूह में फ्लोटिंग-पॉइंट नंबर होते हैं। यह निर्देश के कई प्रकारों के लिए सच है: दो पूर्णांकों को गुणा करना केवल तभी समझ में आता है जब वे पूर्णांक होते हैं, केवल एक पता होने पर कूदता है।
JDługosz

@ सेठ और बडजेएस को यह नहीं माना जाता है कि विरासत के मामले में यह मामला 8087 निर्देशों पर टिका हुआ है, लेकिन नए सीआईएमडी रजिस्टरों के लिए मामला है, जिसका उपयोग केवल लोडिंग / सेविंग के लिए किया जा सकता है (बिना किसी व्याख्या के) कि अगर CIMD रजिस्टरों का इस्तेमाल कभी नहीं किया गया तो उन्हें संदर्भ स्विच में सहेजने की आवश्यकता नहीं है। यदि आप (केवल) एक्सएमएम रजिस्टर के माध्यम से 8 बाइट ले जाते हैं तो यह एक शुद्ध नुकसान है क्योंकि पूरे सेट को बचाने की आवश्यकता है।
JDługosz

3

सीपीयू परवाह नहीं करता है, यह असेंबली कोड को निष्पादित करता है, जो सिर्फ डेटा को इधर-उधर करता है, इसे स्थानांतरित करता है, इसे जोड़ता है या इसे गुणा करता है ...

डेटा प्रकार एक उच्च स्तर की भाषा अवधारणा है: C या C ++ में आपको डेटा के हर एक टुकड़े के लिए प्रकार निर्दिष्ट करने की आवश्यकता होती है जिसे आप हेरफेर करते हैं; C / C ++ कंपाइलर सीपीयू को प्रोसेस करने के लिए डेटा के इन टुकड़ों को सही कमांड में बदलने का ख्याल रखता है (कंपाइलर असेंबली कोड लिखते हैं)

कुछ उच्चतर स्तर की भाषाओं में, प्रकार का अनुमान लगाया जा सकता है: पायथन या जावास्क्रिप्ट में, उदाहरण के लिए, किसी को डेटा प्रकार निर्दिष्ट करने की आवश्यकता नहीं है, फिर भी डेटा में एक प्रकार है और आप एक पूर्णांक के साथ एक स्ट्रिंग नहीं जोड़ सकते हैं, लेकिन आप जोड़ सकते हैं पूर्णांक के साथ एक फ्लोट: 'कंपाइलर' (जो जावास्क्रिप्ट के मामले में एक JIT (जस्ट इन टाइम) कंपाइलर है। जावास्क्रिप्ट को अक्सर 'व्याख्यायित' भाषा कहा जाता है क्योंकि ऐतिहासिक रूप से ब्राउज़रों ने जावास्क्रिप्ट कोड की व्याख्या की थी, लेकिन आजकल जावास्क्रिप्ट इंजन कंपाइलर हैं।

कोड, हमेशा मशीन कोड के लिए संकलित किया जा रहा है, लेकिन जाहिर है मशीन कोड प्रारूप आपके द्वारा लक्षित मशीन पर निर्भर करता है (x86 64 बिट कोड उदाहरण के लिए x86 32 बिट्स मशीन या एआरएम प्रोसेसर पर काम नहीं करेगा)

इसलिए व्याख्यायित कोड को चलाने में वास्तव में बहुत सारी परतें शामिल हैं।

जावा और सी # अन्य रोचक हैं, क्योंकि जावा या सी # कोड तकनीकी रूप से जावा बाइनरी (बायटेकोड) के लिए 'संकलित' है, लेकिन उस कोड की व्याख्या स्वयं जावा रनटाइम द्वारा की जाती है, जो अंतर्निहित हार्डवेयर के लिए विशिष्ट है (एक को स्थापित करने की आवश्यकता है) जावा बिन्री (जार) चलाने के लिए सही मशीन को लक्षित करने वाला JRE


एक संकलक संकलित करता है, यह जेआईटी हो या नहीं; और एक दुभाषिया संकलन के बिना व्याख्या करता है (क्योंकि यदि यह एक संकलक नहीं होगा!)। वे बहुत अलग चीजें हैं। और बाइटकोड व्याख्या के कारण "जावा मज़ेदार" होने के बारे में, विचार करें कि वास्तव में भी एक्स 86 मशीन कोड को माइक्रोकोड में बहुत माइक्रोप्रोसेसर द्वारा व्याख्या (या यहां तक ​​कि संकलित किया जाएगा) होगा ।
हमीजेल

स्पष्टीकरण के लिए धन्यवाद ... सहमत: एक संकलक संकलन करता है, और एक दुभाषिया व्याख्या करता है। जावास्क्रिप्ट के मामले में हालांकि कहानी कुछ जटिल है क्योंकि कुछ पुराने ब्राउज़र कोड की व्याख्या करते हैं, जबकि अधिक आधुनिक ब्राउज़र वास्तव में सिर्फ-इन-टाइम संकलन करते हैं, शायद इसीलिए इसे अभी भी 'व्याख्यायित' भाषा के रूप में संदर्भित किया जाता है अब तकनीकी रूप से नहीं है।
श्रीमती

लेकिन AFAIK, JS की व्याख्या शुरू होती है, और फिर आवश्यकतानुसार संकलित किया जा सकता है। और JIT बहुत सारी चीजों के आधार पर फिर से व्याख्या करने के लिए संकलित व्याख्या से बदल सकती है। उदाहरण के लिए, कोड का एक टुकड़ा किसी दिए गए प्रकार वाले चर के लिए संकलित हो सकता है; लेकिन फिर कोड एक अलग प्रकार के उस चर के साथ फिर से चलाया जाता है, इसलिए मौजूदा संकलित कोड का उपयोग नहीं किया जा सकता है ताकि दुभाषिया कूदता है - जब तक कि कोड नए प्रकार के लिए फिर से संकलित न हो जाए ...
hmijail

आप मुझे उस चीज़ का हवाला दे रहे हैं जो मैंने नहीं कहा, कृपया इसे हटा दें क्योंकि यह पूरी तरह से गलत है। माइक्रोकोड का ओएस के साथ क्या करना है; यह माइक्रोप्रोसेसर के लिए कुछ आंतरिक है। 32 बिट या 64 बिट का भी इससे कोई लेना-देना नहीं है।
हमीजेल

3

डेटाटाइप्स एक हार्डवेयर फीचर नहीं है। सीपीयू विभिन्न कमांड्स के एक जोड़े (अच्छी तरह से, बहुत कुछ) को जानता है। उन्हें सीपीयू का इंस्ट्रक्शन सेट कहा जाता है ।

सबसे अच्छे लोगों में से एक x86 निर्देश सेट है । यदि आप इस पृष्ठ पर "गुणा" करते हैं, तो आपको 50 परिणाम मिलते हैं। MULPDऔर MULSDगुणक गुणन के FIMULलिए , डबल्स के गुणन के लिए ...

वे आदेश रजिस्टरों पर काम करते हैं। रजिस्टर्स मेमोरी स्लॉट होते हैं जिनमें निश्चित संख्या में बिट्स हो सकते हैं (अक्सर 32 या 64, आपके सीपीयू किस आर्किटेक्चर का उपयोग करता है) के आधार पर, कोई फर्क नहीं पड़ता कि ये बिट्स किसका प्रतिनिधित्व करते हैं। इसलिए सीपीयू निर्देश रजिस्टरों के मूल्यों की एक अलग तरीके से व्याख्या करता है, लेकिन मानों में स्वयं प्रकार नहीं होते हैं।

पर एक उदाहरण दिया गया था स्टुअर्ट विलियम्स द्वारा PyCon 2017 :

यहां छवि विवरण दर्ज करें


1
ध्यान दें कि यह कड़ाई से सच नहीं है: ऐसे विशेष-उद्देश्य रजिस्टर हैं जिनमें मनमाना मूल्य नहीं हो सकते हैं (उदाहरण के लिए, सूचक रजिस्टर जो कि केवल किसी भी पते पर नहीं हैं और जहां आप कर सकते हैं, वहां मनमाना परिवर्धन, या फ़्लोटिंग पॉइंट रजिस्टर की अनुमति नहीं देते हैं) 'गैर-सामान्यीकृत मूल्यों को संग्रहीत न करें)। लेकिन आपका उत्तर अधिकांश आर्किटेक्चर पर सामान्य प्रयोजन के रजिस्टरों के लिए सही है ।
गिल्स एसओ- बुराई को रोकना '

2

... कि एक विशेष कार्यक्रम सिर्फ एक विशिष्ट पते से जानकारी लाने के लिए सीपीयू को बताता है और कार्यक्रम यह निर्धारित करता है कि इसका इलाज कैसे किया जाए।

ठीक ठीक। लेकिन रैम को "क्रमिक रूप से" नहीं पढ़ा जाता है, और यह रैंडम एक्सेस मेमोरी के लिए खड़ा है जो बिल्कुल विपरीत है।

यह जानने के अलावा कि बाइट क्या है , , आपको यह भी नहीं पता कि यह बाइट है , या फ्लोटिंग-पॉइंट नंबर जैसी बड़ी चीज़ का टुकड़ा है।

मैं कुछ विशिष्ट उदाहरण देकर अन्य उत्तरों को जोड़ना चाहूंगा।

विचार करें 01000001। कार्यक्रम अपने अर्थ के संबंध में बिना डेटा के एक बड़े पार्सल के हिस्से के रूप में इसे एक स्थान से दूसरे स्थान पर कॉपी कर सकता है। लेकिन पाठ-मोड वीडियो बफर द्वारा उपयोग किए जाने वाले पते पर प्रतिलिपि बनाने से पत्र का कारण होगाA स्क्रीन पर कुछ स्थिति में दिखाई देगा। कार्ड के CGA ग्राफिक्स मोड में होने पर ठीक वैसी ही क्रिया एक लाल पिक्सेल और एक ब्लू पिक्सेल प्रदर्शित करेगा।

एक रजिस्टर में, यह एक पूर्णांक के रूप में संख्या 65 हो सकती है। 32 के बिट को सेट करने के लिए अंकगणित करने का मतलब बिना संदर्भ के कुछ भी हो सकता है , लेकिन विशेष रूप से निचले मामले में एक पत्र को बदलना हो सकता है।

8086 सीपीयू (अभी भी) विशेष निर्देश कहा जाता है DAA कि प्रयोग किया जाता है जब रजिस्टर 2 दशमलव अंकों रखती है, इसलिए यदि आप सिर्फ इतना है कि अनुदेश आप दो अंक के रूप में यह व्याख्या कर रहे हैं प्रयोग किया जाता है 41

प्रोग्राम क्रैश हो जाता है क्योंकि एक मेमोरी शब्द यह सोचकर पढ़ा जाता है कि यह एक पॉइंटर है जब कुछ अन्यथा वहां संग्रहीत किया गया था।

डिबगर का उपयोग करना, स्मृति का निरीक्षण करना, प्रदर्शन के लिए व्याख्या का मार्गदर्शन करने के लिए एक मानचित्र का उपयोग किया जाता है। इस प्रतीक सूचना के बिना, एक निम्न-स्तरीय डिबगर आपको निर्दिष्ट करता है: इस पते को 16-बिट शब्दों के रूप में दिखाएं, इस पते को लंबे समय तक तैरने वाले बिंदु के रूप में, स्ट्रिंग के रूप में ... जो भी हो। एक नेटवर्क पैकेट डंप या अज्ञात फ़ाइल प्रारूप को देखते हुए, इसे बाहर निकालना एक चुनौती है।

यह आधुनिक कंप्यूटर वास्तुकला में शक्ति और लचीलेपन का एक प्रमुख स्रोत है: एक मेमोरी सेल का मतलब कुछ भी हो सकता है , डेटा या निर्देश, जिसका अर्थ केवल उस कार्यक्रम से "इसका अर्थ" है, जो मूल्य के साथ क्या करता है और बाद के कार्यों को कैसे प्रभावित करता है। अर्थ पूर्णांक चौड़ाई से अधिक गहरा है: ये पात्र हैं ... अस्सी या इबेडिक में वर्ण? अंग्रेजी या SQU उत्पाद कोड में शब्द बनाना? भेजने के लिए पता या वापसी का पता यह कहा से आया? निम्नतम स्तर की व्याख्या (तार्किक बिट; पूर्णांक-जैसे, हस्ताक्षरित या अहस्ताक्षरित; फ़्लोट; बीडीसी; सूचक) निर्देश-सेट स्तर पर प्रासंगिक है, लेकिन आप देखते हैं कि यह किसी स्तर पर सभी संदर्भ है: सेपता यह है कि यह लिफाफे पर मुद्रित स्थान के कारण है। यह पोस्टमैन के नियमों के संदर्भ में है, न कि सीपीयू के लिए। संदर्भ एक बड़ा सातत्य है, इसके एक छोर पर बिट्स हैं।


As फुटनोट: डीएए अनुदेश एक बाइट के रूप में एन्कोडेड है 00100111। यदि यह निर्देश खंड में पढ़ा जाता है तो बाइट एक निर्धारित निर्देश है, और अंकों को 27अगर bcd अंक और 0x27 = 39 को एक पूर्णांक के रूप में व्याख्या किया जाता है, जो कि ASCII में अंक 9 है, और इंटरप्ट टेबल का भाग (INT 13 का आधा) 2-बाइट पता, BIOS सेवा दिनचर्या के लिए उपयोग किया जाता है)।


1

एक ही तरीका है कि कंप्यूटर जानता है कि एक मेमोरी लोकेशन एक निर्देश है, एक विशेष-उद्देश्य रजिस्टर जिसे इंस्ट्रक्शन पॉइंटर कहा जाता है वह एक बिंदु या किसी अन्य बिंदु पर होता है। यदि निर्देश सूचक एक मेमोरी शब्द की ओर इशारा करता है, तो इसे एक निर्देश के रूप में लोड किया जाता है। इसके अलावा, कंप्यूटर के पास कार्यक्रमों और अन्य प्रकार के डेटा के बीच अंतर जानने का कोई तरीका नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.