यह वास्तव में एक में दो सवाल है ...
सबसे पहले, एक माइक्रोकंट्रोलर और एक माइक्रोप्रोसेसर के बीच अंतर क्या है?
माइक्रोप्रोसेसर एक शुद्ध रूप से एक सीपीयू है जो बाहरी मेमोरी बस से पढ़े गए निर्देशों के एक सेट का अनुसरण करता है। यह बाह्य संचार बस के माध्यम से बाह्य परिधीय (जैसे स्क्रीन, कीबोर्ड, माउस, हार्ड ड्राइव, आदि) को नियंत्रित करता है। जब आप एक माइक्रोप्रोसेसर प्रोग्राम करते हैं, तो आपका प्रोग्राम डिवाइस के लिए बाहरी होता है। कंप्यूटर में, यह मेमोरी शुरू में बूट अप ROM ROM है जो शुरू में हार्ड ड्राइव से RAM मेमोरी में ऑपरेटिंग सिस्टम को पढ़ता है, फिर इसे वहां से निष्पादित करना जारी रखता है।
माइक्रोकंट्रोलर एक ऑल-इन-वन सीपीयू + मेमोरी की तरह है, जिसमें बाहरी दुनिया के साथ संवाद करने के लिए कुछ बाहरी पोर्ट हैं। यह स्वयं समाहित है और यह प्रोग्राम रखने के लिए बाहरी मेमोरी का उपयोग नहीं करता है (हालाँकि यदि आवश्यक हो तो यह बाहरी मेमोरी में कार्यशील डेटा पढ़ और लिख सकता है)
दूसरे, क्या माइक्रोकंट्रोलर और माइक्रोप्रोसेसर एक ही प्रोग्रामिंग कर रहे हैं?
कुछ मायनों में हाँ, और कुछ मायनों में नहीं।
असेंबली भाषा एक व्यापक शब्द है जो निर्देश के एक सेट का वर्णन करता है जिसे सीपीयू सीधे समझ सकता है। जब आप असेंबली भाषा का संकलन करते हैं, तो यह वास्तव में कुछ भी संकलित नहीं करता है, यह सब इसे बाइट्स के अनुक्रम में परिवर्तित करता है जो कुछ रिश्तेदार मेमोरी स्थानों में कमांड और प्लग का प्रतिनिधित्व करते हैं। यह माइक्रोप्रोसेसर और माइक्रोकंट्रोलर दोनों के लिए सामान्य है।
हालांकि, विभिन्न प्रकार के सीपीयू सीपीयू निर्देशों के एक अलग सेट को समझते हैं। उदाहरण के लिए, यदि आप एक असेंबली लैंग्वेज प्रोग्राम लिखते हैं जो 16F877 माइक्रोकंट्रोलर के साथ काम करता है, तो यह माइक्रोप्रोसेसर के 16Fxxx परिवार के बाहर माइक्रोप्रोसेसर या किसी अन्य माइक्रोकंट्रोलर के लिए पूर्ण बकवास होगा।
इसलिए, हालांकि सभी माइक्रोप्रोसेसरों और माइक्रोकंट्रोलर्स के पार असेंबली एक समान तरीके से काम करती है, लेकिन आपके द्वारा लिखे गए निर्देशों की वास्तविक सूची बहुत अलग है। असेंबली लैंग्वेज में लिखने के लिए, आपके पास डिवाइस की आर्किटेक्चर की गहराई से जानकारी होनी चाहिए, जिसे आप सामान्यतः माइक्रोकंट्रोलर के मामले में डेटाशीट से प्राप्त कर सकते हैं।