मैं बस सोच रहा था, मशीन दुभाषिया बाइनरी कोड कैसे करते हैं? मैं समझता हूं कि आपका कोड 1 और 0 में बदल गया है ताकि मशीन उन्हें समझ सके, लेकिन वे ऐसा कैसे करते हैं? क्या यह बाइनरी अनुवाद के लिए सिर्फ एक सामान्य पाठ है?मशीन बाइनरी की व्याख्या कैसे करती है?
उत्तर
सबसे पहले, "बाइनरी" का मतलब यह नहीं है कि इसका मतलब क्या है (कंप्यूटर पर मौजूद कोई भी डेटा पहले से ही बाइनरी है, वैसे ही जिस तरह से हम प्रदर्शित करने और संभालने का निर्णय लेते हैं)।
दूसरा, संकलन मजेदार पात्रों के लिए एक साधारण परिवर्तन नहीं है (यदि यह था, तो हमें विभिन्न भाषाओं के लिए अलग-अलग कंपाइलर्स की आवश्यकता नहीं होगी)। वास्तव में मशीन कोड की कुछ समझने के लिए, आपको उस आर्किटेक्चर को समझने की आवश्यकता है जिसे वह लक्षित करता है। कई कंप्यूटर आर्किटेक्चर हैं, आपका पीसी उनमें से एक है। यह एक बहुत व्यापक विषय है और समझने के लिए कंप्यूटर वास्तुकला की दृढ़ समझ की आवश्यकता है।
मैं एक एमआईपीएस निर्देशों का एक उदाहरण दिखाऊंगा। यदि आप रुचि रखते हैं, तो आप इस विषय के बारे में कुछ वास्तविक ज्ञान पढ़ सकते हैं और प्राप्त कर सकते हैं, मेरे पोस्ट के अंत में लिंक आज़माएं।
एमआईपीएस एक लोकप्रिय प्रारंभिक विषय है क्योंकि इसका निर्देश प्रारूप अधिक पचाने वाले लोगों में से एक है। एमआईपीएस निर्देश 32 बिट चौड़े हैं। एमआईपीएस में 3 प्रकार के निर्देश हैं: "आर", "आई" और "जे"। हम "मैं" निर्देशों पर एक नज़र डालेंगे।
जब प्रोसेसर को निर्देश मिलता है (डेटा के 32 बिट) यह इसे पढ़ता है और निर्णय लेता है कि इसके साथ क्या किया जाए। "मैं" निर्देश इस तरह दिखेगा:
|------|-----|-----|----------------|
opcode rs rt immediate
6 5 5 16 (the numbers show how wide are each part)
इन का अर्थ:
- opcode बताता अनुदेश किस तरह इस (उदाहरण के लिए: इसके अलावा, घटाव, गुणा और कई अन्य) है। सभी निर्देश ("आर" और "जे" प्रकार सहित) 6-बिट ऑपोड के साथ शुरू होते हैं, और इस तरह प्रोसेसर जानता है कि यह किस तरह का है।
- आरएस और आरटी रजिस्ट्रार हैं, प्रोसेसर में एक प्रकार का स्टोरेज जो 32 बिट मान रख सकता है। एमआईपीएस में इनमें से 32 है और उन्हें उनकी संख्या से पहचाना जाता है। यह स्मृति के समान नहीं है, यह सीपीयू के अंदर ही है।
- तत्काल एक संख्या है। इसे कहा जाता है क्योंकि निर्देश में निर्देश "सही है", रजिस्टर या स्मृति में नहीं।
एक तत्काल एक नंबर एक रजिस्टर में संग्रहीत को जोड़ने का एक ठोस उदाहरण:
001000 00001 00010 0000000000000011
इस उदाहरण में, मैं के रूप में ऊपर भागों में अनुदेश तोड़ दिया।
- opcode:
001000
मतलब हैaddi
या "तत्काल जोड़ने" मूल्यों का अर्थ इस प्रकार है। - रु:
00001
दशमलव में1
है, इसलिए शिक्षा के इस हिस्से प्रोसेसर है कि हम रजिस्टर 1 के रूप में रु उपयोग करना चाहते हैं बताता है। - rd:
00010
2
दशमलव में, आरएस के साथ समान विचार है। - तत्काल:
0000000000000011
दशमलव में3
है।
addi
अनुदेश इस तरह काम करता है: यह रु में पाया मूल्य लेता है और यह करने के लिए तत्काल मूल्य कहते हैं। इसके बाद यह परिणाम rd में डाल देता है। इसलिए, जब निर्देश किया जाता है, rd में 3 + 2 = 5 होगा।
संक्षेप में, कंपाइलर्स आपके टेक्स्ट को पार्स करते हैं और लक्ष्य प्रोसेसर को निर्देश जेनरेट करते हैं जो वही काम करता है जो आप अपने प्रोग्राम के साथ करना चाहते हैं। जैसा कि आप देख सकते हैं, कार्यक्रम के पाठक प्रतिनिधित्व के बीच एक बड़ा अंतर है जिसे हम प्रोग्रामर लिखते हैं, और चलने योग्य मशीन कोड।
- Video lecture on computer architecture
- How instruction decoding works inside a MIPS processor
- Computer organization and design
- MARS आप MIPS मशीन कोड इसके बारे में
यह एक बड़ा विषय है जो आप पूछ रहे हैं। सैद्धांतिक रूप से कंप्यूटर और कंपाइलर्स का निर्माण कैसे किया जाता है, इसके बारे में एक सिंहावलोकन के लिए मैं उत्कृष्ट पुस्तक The elements of computing systems की अनुशंसा करता हूं। यह पालन करना बहुत आसान है और अभ्यास करना मजेदार है। इसमें से अधिकांश लिंक उपलब्ध लिंक पर ऑनलाइन उपलब्ध है।
This question इस विषय पर कुछ अच्छे लिंक भी हैं।
Think साथ खेलने के लिए अनुमति देता है:
एक MIPS और कंप्यूटर वास्तुकला पर कुछ उपयोगी संसाधनों इस तरफ। आपके पास 8 स्विच स्विच हैं जो प्रत्येक स्विच या तो बंद (0) या (1) पर हैं। कंप्यूटर सभी 8 स्विच 1 के रूप में देखेगा। यह अब संयोजन लॉक की तरह है। आपके कीबोर्ड पर प्रत्येक प्रतीक यह संयोजन पर है।
- 1. वर्चुअल मशीन कैसे काम करती है?
- 2. क्या सी ++ मानक को बाइनरी मशीन की आवश्यकता होती है?
- 3. math.random() की व्याख्या की
- 4. iostat की व्याख्या कैसे करें?
- 5. यूनिट परीक्षण की व्याख्या करें
- 6. पीएचपी कथन की व्याख्या
- 7. एक रैखिक, बाइनरी एसवीएम (सपोर्ट वेक्टर मशीन)
- 8. आंशिक आवेदन की व्याख्या -
- 9. स्कैनरसेट क्षमताओं की व्याख्या
- 10. सी ++ की व्याख्या चलाने?
- 11. पायथन की कक्षा कैसे काम करती है?
- 12. पायथन की तलाश कैसे काम करती है?
- 13. एमईएफ की निर्देशिकासूची कैसे काम करती है?
- 14. पायथन की रेंज कैसे काम करती है?
- 15. पावरशेल खोज स्क्रिप्ट जो बाइनरी फाइलों को अनदेखा करती है
- 16. विंडोज टास्क मैनेजर की व्याख्या कैसे करें?
- 17. 64 बिट मशीन पर 32 बिट बाइनरी चला रहा है
- 18. कॉलग्रिंड डेटा की व्याख्या करना
- 19. क्यों (पायथन | रूबी) व्याख्या की गई है?
- 20. क्लोजर संकलित या व्याख्या की गई है?
- 21. इस जावा कोड की व्याख्या क्या है?
- 22. जीसीसी मानचित्र फ़ाइल की व्याख्या
- 23. पीएचपी व्याख्या नहीं की, स्रोत देखें
- 24. बाइटकोड बनाम। व्याख्या की गई
- 25. की व्याख्या पासवर्ड regex घटक
- 26. व्याख्या की गई भाषाएं - दुभाषिया
- 27. बाइनरी में 1 की संख्या की संख्या कैसे गिनती है?
- 28. यह कैसे बताना है कि मशीन ट्यूरिंग मशीन समतुल्य है
- 29. /proc/bus/pci/devices की सामग्री की व्याख्या कैसे करें?
- 30. आरजीएस फ़ाइल कैसे काम करती है