2008-09-19 33 views
22

मेरा प्रश्न: क्या एमआईपीएस प्रोग्रामिंग भाषा है जो जानबूझकर जानती है?एमआईपीएस - क्या यह महत्वपूर्ण है?

मैं एक सीएस छात्र हूं और एमआईपीएस पर केंद्रित एक असेंबली कक्षा ले रहा हूं। मैं उच्च स्तर की भाषाओं में बहुत सहज लेखन कर रहा हूं, लेकिन मिप्स ने मुझे थोड़ा सा नीचे रखा है।

क्या एमआईपीएस कुछ है जो मुझे वास्तव में ध्यान केंद्रित करना चाहिए और इसे पूरी तरह से समझने की कोशिश करना चाहिए? क्या यह भविष्य में मेरी मदद करेगा?

उत्तर

8

मैंने दो साल पहले एक असेंबली कक्षा में मिप्स कर लिया था। मैंने खुद को गेमबॉय एडवांस गेम को एक मिप्स-जैसी एएसएम भाषा में लिखा। यह नहीं कह सकता कि मैंने इसका आनंद लिया।

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

32

एक बिंदु पर (9 0 के दशक में) एमआईपीएस-व्युत्पन्न प्रोसेसर दुनिया में सबसे अच्छे बिकने वाले प्रोसेसर थे, बिक्री की बौछार इंटेल x86 प्रोसेसर। यह एम्बेडेड बाजार में उनकी बड़ी उपस्थिति के कारण था। मुझे लगता है कि अब एआरएम आधारित प्रोसेसर उस शीर्षक पर कब्जा कर चुके हैं, लेकिन एमआईपीएस का उपयोग करके वहां अभी भी कई एम्बेडेड सिस्टम हैं।

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

प्रत्येक सीपीयू प्रकार के पास एक अलग निर्देश सेट होता है लेकिन पर्याप्त समानता होती है कि एक बार जब आप असेंबली की एक बोली (आपके मामले में एमआईपीएस) सीखते हैं तो दूसरों को लेने में आसान होना चाहिए।

6

कंप्यूटर के बहुत कम स्तर को समझना उपयोगी है। उदाहरण के लिए डेवलपर्स हैं जो कहेंगे कि सीपीयू किसी प्रकार का "नया ऑब्जेक्ट" निर्देश निष्पादित करता है। निश्चित रूप से ऐसा कोई निर्देश नहीं है, वस्तुओं का प्रबंधन अवशोषण की कई परतें होती है। भेद को समझना अच्छा होता है, इसलिए आप समझ सकते हैं कि ऑब्जेक्ट सृजन महंगा क्यों हो सकता है (या नहीं) या क्यों संरक्षित रिक्त स्थान सिस्टम को अधिक मजबूत बना सकते हैं।

जब मैं स्कूल में था, तो असेंबली कोर्स सिस्टम/360 निर्देश सेट का उपयोग कर आईबीएम मेनफ्रेम पर पढ़ाया जाता था। मैंने कभी भी अपने करियर में किसी भी समय काम नहीं किया है, ऐसी मशीन पर काम करने के करीब कहीं भी आना, लेकिन सीपीयू की तरह दिखने का ज्ञान मूल्यवान रहा है।

आजकल मैं एमआईपीएस प्रोसेसर का उपयोग करके एम्बेडेड सिस्टम पर काम करता हूं। मैं वास्तव में एमआईपीएस असेंबली लिस्टिंग पर उचित मात्रा में पोरिंग खर्च करता हूं, और बूट वैक्टर और सिंक्रनाइज़ेशन प्राइमेटिव के लिए कुछ एमआईपीएस असेंबली लिखता हूं। फिर भी अगर आप वास्तव में असेंबली में कुछ भी नहीं लिखते हैं, तो सीपीयू ऑपरेशन को समझना अभी भी मूल्यवान है।

3

"एमपीएस प्रोग्रामिंग भाषा" द्वारा मुझे लगता है कि आप एमआईपीएस असेंबली भाषा का मतलब है।

एक असेंबली भाषा सीखना जानना फायदेमंद है, यह आपको उस कोड को मैप करने में मदद करता है जिसे आप लिखते हैं कि यह हार्डवेयर पर कैसे चलेंगे। यह आपको कैश मिस, ब्रांचिंग, ऑर्डर ऑफ ऑर्डर निष्पादन, और अन्य चीजों के बारे में बताएगा जो आप उच्च स्तरीय कोड लिखने के बारे में नहीं सोचेंगे।

मौसम सीखने एमआईपीएस असेंबली आपके लिए उपयोगी है इस पर निर्भर करता है कि आप किस कैरियर का पालन करना चाहते हैं।व्यक्तिगत रूप से मुझे लगता है कि x86/x64 (पीसी में लोकप्रिय, यदि आप पीसी पर सी ++ या सी # लिखते हैं तो सीधे लागू होते हैं), पीपीसी (लोकप्रियता प्राप्त करना, गेम कंसोल में उपयोग किया जाता है, और आपको आरआईएससी को भी उजागर करता है) या एआरएम (कई एम्बेडेड डिवाइसों में उपयोग किया जाता है) जैसे कि मोबाइल फोन) सीखने के लिए बेहतर विकल्प हो सकते हैं।

2

मिप्स एम्बेडेड सिस्टम में वापस आ रहे हैं। @ [sk] ने मुझसे बेहतर सारांश दिया है, लेकिन मेरे पास हालिया उदाहरण है:

ब्रॉडकॉम इन दिनों एमआईपीएस या एआरएम चिप्स के साथ वाईफाई कार्ड बनाने के लिए प्रतीत होता है (मुझे यकीन नहीं है कि, दस्तावेज कहता है एक, फर्मवेयर दूसरे कहते हैं)। हालांकि, नए नए चिप्स पर हम अभी भी सभी सुविधाओं के साथ काम कर रहे लिनक्स समर्थन पर इंतजार कर रहे हैं, इसलिए इसी कारण से, मुझे खुशी है कि आप सीख रहे हैं। (अब मुझे कुछ ड्राइवर मिलें और लिखें: पी)

2

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

यह कहा गया कि, एमआईपीएस एएसएम शायद बेकार है, क्योंकि लगभग कोई भी अब एमआईपीएस का उपयोग नहीं करता है। (एसजीआई का इस्तेमाल होता था, लेकिन अब उनकी मशीनें x86/IA-64 चिप्स पर हैं।) यदि आपको असेंबली भाषा आकर्षक लगती है और आगे असेंबली में काम करना चाहती है, तो एआरएम निर्देश सेट सीखें। एआरएम एमआईपीएस की तुलना में केवल थोड़ा अधिक जटिल है, और लगभग सभी मोबाइल फोन, स्मार्ट फोन और पीडीए अब एआरएम चिप्स (निर्माताओं के दर्जनों द्वारा निर्मित) का उपयोग करते हैं। आइपॉड एआरएम का उपयोग करता है, जैसा कि (मुझे लगता है) ज़्यून करता है।

2

एमआईपीएस असेंबली सीखने के लिए एक महान भाषा है। आपके कार्यक्रमों को कम कठिन बनाने के लिए आपके पास बहुत से सामान्य उद्देश्य रजिस्ट्रार हैं और यह एक आरआईएससी आर्किटेक्चर है इसलिए आपको याद रखने के लिए कम निर्देश हैं।

कुछ मुख्यधारा के उपयोग में से कुछ लोगों का उल्लेख नहीं है कि एन 64, प्लेस्टेशन 1, प्लेस्टेशन 2 और पीएसपी सभी एमआईपीएस प्रोसेसर का इस्तेमाल करते हैं।

+3

मुझे पूरा यकीन है कि एन 64 में एमआईपीएस प्रोसेसर भी था। – Ibrahim

2

आपके मामले में, मुझे लगता है कि एमआईपीएस को ट्यूटरिंग सहायता के रूप में उपयोग किया जाता है। यह एक कंप्यूटर विज्ञान वर्ग है और आपको कोड बंदर उपकरण देने के बजाए, वे आपको व्यापक अवधारणाओं को सिखाने की कोशिश कर रहे हैं जिन्हें आसानी से x86 की बजाय एमआईपीएस जैसे सरल वास्तुकला पर उदाहरण दिया गया है।

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

0

मैंने पिछले साल एमआईपीएस का अध्ययन किया है। एमआईपीएस एक महत्वपूर्ण भाषा है लेकिन दुर्भाग्य से, और शायद आप कभी भी एमआईपीएस का उपयोग नहीं करेंगे। आप कुछ मूलभूत बातें सीखेंगे लेकिन आपको जरूरत से अधिक जानने की कोशिश करने में समय बर्बाद न करें क्योंकि अन्य भाषाओं की तुलना में एमआईपीएस में कई नौकरियां नहीं हैं।

0

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

1

विधानसभा सीखने के लिए यहां 3 अच्छे कारण हैं।

  1. कार्यक्रमों के कुछ छोटे टुकड़े उच्च स्तर की भाषा की तुलना में असेंबली में बेहतर लिखे गए हैं।
  2. पुराने असेंबली कार्यक्रमों को डीबग या बढ़ाया जाना आवश्यक हो सकता है।
  3. असेंबली में प्रोग्राम सीखना आपको प्रोसेसर के लिए सटीक मॉडल विकसित करने में मदद करेगा और एक कंपाइलर क्या करता है।

तीसरा कारण अब तक का सबसे महत्वपूर्ण कारण है। यह जानकर कि आपका हार्डवेयर काम कैसे कंप्यूटर विज्ञान की समझ को गहरा कर देगा और बदले में आपको बेहतर डेवलपर बनने में मदद करेगा।

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