MCS-51 माइक्रोकंट्रोलर: सॉफ्टवेयर मॉडल, संरचना, कमांड। माइक्रोकंट्रोलर्स MCS-51

OMEVM कमांड सिस्टम महान डेटा प्रोसेसिंग क्षमताएं प्रदान करता है, तार्किक, अंकगणितीय संचालन के कार्यान्वयन के साथ-साथ रीयल-टाइम नियंत्रण प्रदान करता है। कार्यान्वित बिटवाइज़, टेट्राड (4 बिट्स), बाइट (8 बिट्स) और 16-बिट डेटा प्रोसेसिंग।

LSI परिवार MCS-51 - 8-बिट OMEVM: ROM, RAM, विशेष प्रयोजन रजिस्टर, ALU और बाहरी बसों का एक बाइट संगठन है। दो-बाइट डेटा का उपयोग केवल पॉइंटर रजिस्टर (DPTR) और प्रोग्राम काउंटर (PC) द्वारा किया जाता है। यह ध्यान दिया जाना चाहिए कि डेटा पॉइंटर रजिस्टर का उपयोग दो-बाइट रजिस्टर DPTR के रूप में या दो सिंगल-बाइट विशेष-उद्देश्य रजिस्टर DPH और DPL के रूप में किया जा सकता है। प्रोग्राम काउंटर हमेशा दो-बाइट रजिस्टर के रूप में प्रयोग किया जाता है।

इस प्रणाली के 33 कार्यों को निर्दिष्ट करने के लिए ओएमईवीएम कमांड सेट में 42 कमांड निमोनिक्स हैं।

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

कमांड सिस्टम को सशर्त रूप से पाँच समूहों में विभाजित किया जा सकता है:

निम्नलिखित प्रकार के स्रोत ऑपरेंड एड्रेसिंग हैं:

  • बेस और इंडेक्स रजिस्टरों के योग द्वारा अप्रत्यक्ष रजिस्टर एड्रेसिंग

कमांड सिस्टम में प्रयुक्त पदनामों और प्रतीकों की तालिका

पदनाम, प्रतीक उद्देश्य
बैटरी
आर एन वर्तमान में चयनित रजिस्टर बैंक के रजिस्टर
आर कमांड में निर्दिष्ट लोडेड रजिस्टर की संख्या
प्रत्यक्ष सीधे पता योग्य 8-बिट आंतरिक डेटा स्थान पता, जो आंतरिक डेटा रैम स्थान (0-127) या SFR (128-255) हो सकता है
@आरआर अप्रत्यक्ष रूप से संबोधित करने योग्य 8-बिट आंतरिक डेटा रैम स्थान
डेटा8 सीपीसी में शामिल 8-बिट तत्काल डेटा
डेटा एच तत्काल 16-बिट डेटा के एमएसबी (15-8)।
डेटाएल कम बिट्स (7-0) तत्काल 16-बिट डेटा
addr11 11-बिट गंतव्य पता
AddrL गंतव्य पते के कम से कम महत्वपूर्ण बिट
disp8 8-बिट हस्ताक्षरित ऑफ़सेट बाइट
अंश सीधे पता करने योग्य बिट जिसके पते में सीपीसी आंतरिक डेटा रैम या एसएफआर में स्थित है
a15, a14...a0 गंतव्य पता बिट्स
(एक्स) एक्स तत्व की सामग्री
((एक्स)) तत्व एक्स में संग्रहीत पते पर सामग्री
(एक्स) [एम] निर्वहन एम तत्व एक्स

+
-
*
और
या
एक्सओआर
/एक्स
संचालन:
अतिरिक्त
घटाव
गुणा
विभाजन
तार्किक गुणा (और ऑपरेशन)
तार्किक जोड़ (या ऑपरेशन)
अतिरिक्त मॉड्यूल 2 (एक्सओआर)
तत्व एक्स उलटा

फ़ंक्शन मेनेमिक्स विशिष्ट रूप से एड्रेसिंग विधियों और डेटा प्रकारों के विशिष्ट संयोजनों से जुड़ा हुआ है। कमांड सिस्टम में कुल 111 ऐसे संयोजन संभव हैं। तालिका वर्णानुक्रम में क्रमबद्ध आदेशों की एक सूची दिखाती है।

स्मृती-विज्ञान समारोह झंडे
ACALL टीम पूर्ण सबरूटीन कॉल
जोड़ना एसी, सी, ओवी
कैरी के साथ जोड़ एसी, सी, ओवी
एजेएमपी टीम पूर्ण संक्रमण
तर्क "और"
चर-बिट्स के लिए तार्किक "AND" सी
तुलना करें और बराबर नहीं तो कूदें सी
टीम सीएलआर ए बैटरी रीसेट
सीएलआर टीम बिट रीसेट करें सी, बिट
सीपीएल टीम ए बैटरी उलटा
सीपीएल टीम बिट उलटा सी, बिट
टीम डीए ए जोड़ने के लिए संचायक दशमलव सुधार एसी, सी
डीईसी टीम<байт> घटती
टीम डीआईवी एबी विभाजन सी, ओवी
टीम डीजेएनजेड<байт>, <смещение> शून्य न होने पर घटें और कूदें
टीम आई.एन.सी.<байт> वेतन वृद्धि
टीम आईएनसी डीपीटीआर डेटा सूचक वृद्धि
टीम जे.बी. , अगर बिट सेट है तो जंप करें
टीम जेबीसी , अगर बिट सेट है तो ब्रांच करें और इस बिट को रीसेट करें
टीम जे.सी. अगर कैरी सेट है तो जंप करें
जेएमपी @ ए + डीपीटीआर कमांड अप्रत्यक्ष संक्रमण
जेएनबी टीम , अगर बिट सेट नहीं है तो जंप करें
टीम जेएनसी अगर कोई ट्रांसफर सेट नहीं है तो जंप करें
टीम जेएनजेड यदि संचायक सामग्री गैर-शून्य है तो जंप करें
टीम जेजेड संचायक सामग्री 0 होने पर जंप करें
एलकॉल टीम लंबी कॉल
टीम एलजेएमपी लंबा संक्रमण
फॉरवर्ड वेरिएबल-बाइट
डेटा बिट भेजें सी
कमांड एमओवी डीपीटीआर,#डेटा16 16-बिट स्थिरांक के साथ डेटा पॉइंटर लोड करें
एमओवीसी निर्देश ए, @ ए + ( ) प्रोग्राम मेमोरी से बाइट ले जाएँ
बाहरी मेमोरी (बाहरी मेमोरी से) डेटा भेजें

व्याख्यान योजना

1 परिचय

2. अंकगणित और तार्किक निर्देश

3. डेटा ट्रांसफर कमांड

4. बूलियन ऑपरेशन

5. जंप निर्देश

1 परिचय

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

संबोधित मोड : निर्देश समुच्चय एमसीएस -51निम्नलिखित एड्रेसिंग मोड का समर्थन करता है। प्रत्यक्ष संबोधन: ऑपरेंड निर्देश में 8-बिट पते द्वारा निर्दिष्ट किया गया है। डायरेक्ट एड्रेसिंग का उपयोग केवल आंतरिक डेटा मेमोरी और रजिस्टरों के निचले आधे हिस्से के लिए किया जाता है एसएफआर. अप्रत्यक्ष संबोधन: निर्देश ऑपरेंड के पते वाले रजिस्टर को संबोधित करता है। इस प्रकार के एड्रेसिंग का उपयोग बाहरी और आंतरिक रैम के लिए किया जाता है। रजिस्टरों का उपयोग 8-बिट पतों को निर्दिष्ट करने के लिए किया जा सकता है आर0और आर 1चयनित रजिस्टर बैंक या स्टैक पॉइंटर सपा. 16-बिट एड्रेसिंग के लिए, केवल डेटा पॉइंटर रजिस्टर का उपयोग किया जाता है। डीपीटीआर.

रजिस्टर निर्देश : रजिस्टर R0-R7वर्तमान रजिस्टर बैंक को विशिष्ट निर्देशों के माध्यम से संबोधित किया जा सकता है जिसमें 3-बिट फ़ील्ड होता है जो निर्देश में ही रजिस्टर संख्या दर्शाता है। इस मामले में, कमांड में कोई संबंधित पता फ़ील्ड नहीं है। विशेष रजिस्टरों का उपयोग कर संचालन: कुछ निर्देश व्यक्तिगत रजिस्टरों का उपयोग करते हैं (उदाहरण के लिए, संचायक संचालन, डीपीटीआर, वगैरह।)। इस मामले में, निर्देश में ऑपरेंड का पता बिल्कुल भी निर्दिष्ट नहीं है। यह ओपकोड द्वारा पूर्व निर्धारित है।

तत्काल स्थिरांक : स्थिरांक सीधे ओपकोड के पीछे कमांड में हो सकता है।

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

कमांड सेटइस प्रणाली के 33 कार्यों को निर्दिष्ट करने के लिए 42 कमांड निमोनिक्स हैं। अधिकांश असेंबली भाषा निर्देशों के वाक्य-विन्यास में एक फ़ंक्शन मेनेमोनिक होता है, जिसके बाद ऑपरेंड एड्रेसिंग विधियों और डेटा प्रकारों को निर्दिष्ट करते हैं। अलग-अलग डेटा प्रकार या एड्रेसिंग मोड सेट ऑपरेंड द्वारा निर्धारित किए जाते हैं, मेनेमोनिक नोटेशन में बदलाव से नहीं।

कमांड सिस्टम को सशर्त रूप से पाँच समूहों में विभाजित किया जा सकता है: अंकगणितीय कमांड; तार्किक आदेश; डेटा ट्रांसफर कमांड; बिट प्रोसेसर निर्देश; शाखा और स्थानांतरण आदेश। कमांड सिस्टम में प्रयुक्त पदनाम और प्रतीक नीचे दिए गए हैं।

मेज़। कमांड सिस्टम में उपयोग किए जाने वाले नोटेशन और प्रतीक

पदनाम, प्रतीक

उद्देश्य

बैटरी

वर्तमान में चयनित रजिस्टर बैंक के रजिस्टर

कमांड में निर्दिष्ट लोडेड रजिस्टर की संख्या

प्रत्यक्ष

सीधे पता योग्य 8-बिट आंतरिक डेटा स्थान पता, जो एक आंतरिक डेटा रैम स्थान (0-127) या एक विशेष फ़ंक्शन रजिस्टर SFR (128-255) हो सकता है

अप्रत्यक्ष रूप से संबोधित करने योग्य 8-बिट आंतरिक डेटा रैम स्थान

8 बिट तुरंतऑपरेशन कोड (सीओपी) में शामिल डेटा

डेटा एच

तत्काल 16-बिट डेटा के एमएसबी (15-8)।

डेटाएल

कम बिट्स (7-0) तत्काल 16-बिट डेटा

11-बिट गंतव्य पता

AddrL

गंतव्य पते के कम से कम महत्वपूर्ण बिट

8-बिट हस्ताक्षरित ऑफ़सेट बाइट

सीधे पता करने योग्य बिट जिसके पते में आंतरिक डेटा रैम या विशेष फ़ंक्शन रजिस्टर SFR में स्थित CPC होता है

a15, a14...a0

गंतव्य पता बिट्स

एक्स तत्व की सामग्री

तत्व एक्स में संग्रहीत पते पर सामग्री

निर्वहन एम तत्व एक्स


+

*
और
या
एक्सओआर
/एक्स

संचालन:
अतिरिक्त
घटाव
गुणा
विभाजन
तार्किक गुणा (और ऑपरेशन)
तार्किक जोड़ (या ऑपरेशन)
अतिरिक्त मॉड्यूल 2 (एक्सओआर)
तत्व एक्स उलटा

फ़ंक्शन मेनेमिक्स विशिष्ट रूप से एड्रेसिंग विधियों और डेटा प्रकारों के विशिष्ट संयोजनों से जुड़ा हुआ है। कमांड सिस्टम में कुल 111 ऐसे संयोजन संभव हैं।

2. अंकगणित और तार्किक निर्देश

कैसे करें उदाहरण अंकगणितीय आदेश, अतिरिक्त ऑपरेशन निम्न में से किसी एक कमांड द्वारा किया जा सकता है।

जोड़ना,7 एफ 16 - रजिस्टर ए की सामग्री में नंबर 7 जोड़ेंएफ 16 और परिणाम को रजिस्टर ए में सहेजें;

जोड़ना,@ आर0 - रजिस्टर ए की सामग्री में वह संख्या जोड़ें जिसका पता (@ – व्यावसायिक पर ) रजिस्टर में रखा जाता हैआर 0 (अप्रत्यक्ष संबोधन), और परिणाम को रजिस्टर ए में संग्रहीत करें;

ए, आर7 जोड़ें- रजिस्टर ए की सामग्री में रजिस्टर की सामग्री जोड़ेंआर 7 और परिणाम को रजिस्टर ए में सहेजें;

जोड़ें ए, # 127- रजिस्टर ए की सामग्री में एक नंबर जोड़ें जिसका स्टोरेज सेल पता 127 है ( # - संख्या प्रतीक), और परिणाम को रजिस्टर में सहेजें टी- रे ए।

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

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

अनुदेश डिव एबीसंचायक की सामग्री को रजिस्टर बी में मान से विभाजित (विभाजित) करता है, शेष को बी में और भागफल को संचायक में छोड़ देता है।

अनुदेश डीए एबाइनरी-दशमलव अंकगणितीय संचालन (बाइनरी-दशमलव कोड में दर्शाई गई संख्याओं पर अंकगणितीय संचालन) के लिए डिज़ाइन किया गया। यह बाइनरी को परिवर्तित नहीं करता है द्विआधारी दशमलव, लेकिन केवल दो बीसीडी संख्या जोड़ने पर सही परिणाम प्रदान करता है।

उदाहरण तार्किक आदेश: तार्किक और संचालन निम्न में से किसी एक कमांड द्वारा किया जा सकता है:

एएनएल,7 एफ 16 - संख्या 7 से रजिस्टर ए की सामग्री का तार्किक गुणनएफ 16 और परिणाम रजिस्टर ए में संग्रहित है;

एएनएल,@ आर1 - रजिस्टर ए की सामग्री का तार्किक गुणा उस संख्या से जिसका पता रजिस्टर में संग्रहीत हैआर 1 (अप्रत्यक्ष संबोधन), और परिणाम को रजिस्टर ए में संग्रहीत करें;

एएनएल ए, आर6- रजिस्टर की सामग्री द्वारा रजिस्टर ए की सामग्री का तार्किक गुणनआर 6, और परिणाम को रजिस्टर ए में संग्रहीत करें;

एएनएल ए, # 53 - रजिस्टर ए की सामग्री का एक संख्या से तार्किक गुणा जिसका भंडारण सेल पता 53 16 है, और परिणाम को रजिस्टर ए में सहेजें।

संचायक की सामग्री पर सभी तार्किक संचालन एक मशीन चक्र में किए जाते हैं, बाकी - दो में। बूलियन ऑपरेशन आंतरिक डेटा मेमोरी या किसी भी रजिस्टर के निचले 128 बाइट्स में से किसी पर भी किया जा सकता है एसएफआर (विशेष कार्य रजिस्टर) बैटरी का उपयोग किए बिना डायरेक्ट एड्रेसिंग मोड में।

रोटेट ऑपरेशन RL A, RLC A, आदि संचायक की सामग्री को एक बिट दाएँ या बाएँ ले जाते हैं। बाएं चक्रीय बदलाव के मामले में, कम से कम महत्वपूर्ण बिट को सबसे महत्वपूर्ण स्थिति में ले जाया जाता है। सही चक्रीय बदलाव के मामले में विपरीत होता है।

कार्यवाही स्वैप एसंचायक में कनिष्ठ और वरिष्ठ चतुष्कोणों का आदान-प्रदान करता है।

3. डेटा ट्रांसफर कमांड

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

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

डेटा ट्रांसफर निर्देशों में 16-बिट ट्रांसफर ऑपरेशन शामिल है एमओवी डीपीटीआर, # डेटा16, जिसका उपयोग डेटा पॉइंटर रजिस्टर को इनिशियलाइज़ करने के लिए किया जाता है डीपीटीआरप्रोग्राम मेमोरी में टेबल देखते समय या बाहरी डेटा मेमोरी तक पहुँचने के लिए।

कार्यवाही एक्ससीएच ए, बाइटसंचायक और संबोधित बाइट के बीच डेटा का आदान-प्रदान करने के लिए उपयोग किया जाता है। टीम एक्ससीएचडी ए, @ रीपिछले एक के समान, लेकिन केवल ऑपरेंड के आदान-प्रदान में शामिल निचले टेट्राड के लिए।

बाहरी डेटा मेमोरी तक पहुँचने के लिए केवल अप्रत्यक्ष एड्रेसिंग का उपयोग किया जाता है। सिंगल-बाइट पतों के मामले में, रजिस्टरों का उपयोग किया जाता है आर0या आर 1वर्तमान रजिस्टर बैंक, और 16-बिट वालों के लिए, डेटा पॉइंटर रजिस्टर डीपीटीआर. बाहरी डेटा मेमोरी तक पहुँचने की किसी भी विधि के साथ, बैटरी सूचना के स्रोत या रिसीवर की भूमिका निभाती है।

प्रोग्राम मेमोरी में स्थित तालिकाओं तक पहुँचने के लिए, निम्नलिखित कमांड का उपयोग किया जाता है:

एमओवीसी ए, @ ए + डीपीटीआर ;

एमओवीसी ए, @ ए + पीसी .

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

4. बूलियन ऑपरेशन

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

बिट कैरी करें सीएफ़विशेष फ़ंक्शन रजिस्टर में "कार्यक्रम स्थिति शब्द पीएसडब्ल्यू' का उपयोग एक-बिट बूलियन प्रोसेसर संचायक के रूप में किया जाता है।

5. जंप निर्देश

जंप ऑपरेशन पतों को असेंबली भाषा में एक लेबल या प्रोग्राम मेमोरी स्पेस में वास्तविक मान द्वारा दर्शाया जाता है। सशर्त शाखा पते एक रिश्तेदार ऑफसेट में इकट्ठे होते हैं - प्रोग्राम काउंटर में एक साइन बाइट जोड़ा जाता है पीसीअगर संक्रमण की स्थिति पूरी हो जाती है। निर्देश के बाद पहली बाइट के सापेक्ष इस तरह की छलांग की सीमाएं शून्य से 128 और 127 के बीच होती हैं। विशेष समारोह रजिस्टर में "कार्यक्रम स्थिति शब्द पीएसडब्ल्यू»कोई शून्य ध्वज नहीं है, इसलिए निर्देश जेजेडऔर जेएनजेडसंचायक में डेटा का परीक्षण करते समय "शून्य के बराबर है" स्थिति की जाँच करें।

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

निर्देशों में एलजेएमपीगंतव्य पता 16-बिट स्थिरांक के रूप में उपयोग किया जाता है। आदेश तीन बाइट लंबा है। गंतव्य पता प्रोग्राम मेमोरी में कहीं भी स्थित हो सकता है।

टीम एजेएमपी 11-बिट पता स्थिरांक का उपयोग करता है। कमांड में दो बाइट होते हैं। जब यह निर्देश निष्पादित किया जाता है, तो पता काउंटर के निचले 11 बिट्स को निर्देश से 11-बिट पते से बदल दिया जाता है। प्रोग्राम काउंटर के पांच सबसे महत्वपूर्ण बिट्स पीसीअपरिवर्तित ही रहेंगे। इस प्रकार, 2K-बाइट ब्लॉक के अंदर छलांग लगाई जा सकती है, जिसमें निर्देश के बाद निर्देश होते हैं एजेएमपी.

सबप्रोग्राम कॉल निर्देश दो प्रकार के होते हैं: एलकॉलऔर एक पुकार. अनुदेश एलकॉलतथाकथित सबरूटीन के 16-बिट पते का उपयोग करता है। इस मामले में, प्रोग्राम मेमोरी में सबरूटीन कहीं भी स्थित हो सकता है। अनुदेश एक पुकार 11-बिट सबरूटीन एड्रेस का उपयोग करता है। इस मामले में, तथाकथित उपनेमका उसी 2K-बाइट ब्लॉक में निम्नलिखित निर्देश के साथ स्थित होना चाहिए एक पुकार. निर्देश के दोनों संस्करण अगले निर्देश के पते को स्टैक पर धकेलते हैं और इसे प्रोग्राम काउंटर में लोड करते हैं। पीसी संबंधित नया मान।

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

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

टीम सीजेएनईइसके दो ऑपरेंड की तुलना अहस्ताक्षरित पूर्णांक के रूप में करता है और इसमें निर्दिष्ट पते पर कूद जाता है यदि तुलना किए गए ऑपरेंड समान नहीं हैं। यदि पहला ऑपरेंड दूसरे से कम है, तो कैरी बिट सीएफ़ "1" पर सेट करें।

इकट्ठे रूप में सभी निर्देश 1, 2 या 3 बाइट्स पर कब्जा कर लेते हैं।

इंटेल MCS-51 परिवार वास्तुकला का प्रवर्तक है, जो इस परिवार के पहले प्रतिनिधि - 8051 माइक्रोकंट्रोलर से अपना नाम लेता है, जिसे 1980 में n-MOS तकनीक पर आधारित जारी किया गया था। बाह्य उपकरणों का एक अच्छा सेट, बाहरी या आंतरिक प्रोग्राम मेमोरी का एक लचीला विकल्प और एक सस्ती कीमत ने सुनिश्चित किया कि यह माइक्रोकंट्रोलर बाजार में सफल रहा। प्रौद्योगिकी की दृष्टि से, 8051 माइक्रोकंट्रोलर अपने समय के लिए एक बहुत ही जटिल उत्पाद था - क्रिस्टल में 128 हजार ट्रांजिस्टर का उपयोग किया गया था, जो कि 16-बिट 8086 माइक्रोप्रोसेसर में ट्रांजिस्टर की संख्या का 4 गुना था। यह माइक्रोकंट्रोलर कोर बना हुआ है आज तक MCS-51 परिवार का।

परिवार की बुनियादी वास्तुकला (8051 माइक्रोकंट्रोलर आर्किटेक्चर) के मुख्य तत्व हैं:

8-बिट एएलयू;

रजिस्टरों के 4 बैंक, प्रत्येक में 8;

आंतरिक (निवासी) प्रोग्राम मेमोरी 4 KB, जिसमें ROM या EPROM (8751) प्रकार है;

आंतरिक (निवासी) डेटा मेमोरी 128 बाइट्स;

21 विशेष समारोह रजिस्टर;

बूलियन प्रोसेसर;

दो 16-बिट टाइमर/काउंटर;

सीरियल पोर्ट कंट्रोलर (UART);

दो प्राथमिकता स्तरों के साथ इंटरप्ट नियंत्रक;

चार 8-बिट I/O पोर्ट, जिनमें से दो बाहरी प्रोग्राम और डेटा मेमोरी तक पहुँचने के लिए एड्रेस/डेटा बस के रूप में उपयोग किए जाते हैं;

अंतर्निहित घड़ी जनरेटर।

फिर 8052 माइक्रोकंट्रोलर जारी किया गया, जिसमें एक तीसरे टाइमर द्वारा पेश किए गए रेजिडेंट प्रोग्राम और डेटा मेमोरी की बढ़ी हुई मात्रा और एक समान रूप से विस्तारित इंटरप्ट कंट्रोलर शामिल था।

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

और इंटेल द्वारा MK 8051 के विकास में अंतिम महत्वपूर्ण चरण माइक्रोकंट्रोलर्स 8xC51FA / FB / FC और 8xC51RA / RB / RC की रिलीज़ थी, जिन्हें संक्षिप्तता के लिए अक्सर 8xC51Fx और 8xC51Rx कहा जाता है। क्रिस्टल के इस समूह की मुख्य विशिष्ट विशेषता एक विशेष टाइमर / काउंटर (पीसीए) की उपस्थिति है। इसके अलावा, 8xC51Rx माइक्रोकंट्रोलर्स में अतिरिक्त रूप से वॉचडॉग टाइमर (WDT) होता है। पीसीए की वास्तुकला और कार्यक्षमता पर अधिक विस्तार से विचार करें।

आरएसए में शामिल हैं:

16-बिट टाइमर/काउंटर;

पांच 16-बिट नमूना और तुलना मॉड्यूल, प्रत्येक एक अलग माइक्रोकंट्रोलर I/O पोर्ट लाइन से जुड़ा हुआ है।

टाइमर/काउंटर सभी पांच नमूने और तुलना मॉड्यूल परोसता है, जिसे निम्नलिखित कार्यों में से एक करने के लिए प्रोग्राम किया जा सकता है:

बाहरी सिग्नल के सकारात्मक किनारे पर टाइमर मान का 16-बिट नमूनाकरण;

बाहरी सिग्नल के नकारात्मक किनारे पर टाइमर मान का 16-बिट नमूनाकरण;

बाहरी सिग्नल के किसी भी किनारे पर टाइमर मान का 16-बिट नमूनाकरण;

16-बिट प्रोग्राम करने योग्य टाइमर;

16-बिट हाई-स्पीड आउटपुट डिवाइस;

8-बिट पीडब्लूएम।

सभी सूचीबद्ध कार्यों का कार्यान्वयन पीसीए में हार्डवेयर स्तर पर होता है और केंद्रीय प्रोसेसर को लोड नहीं करता है। यह आपको समग्र थ्रूपुट को बढ़ाने, माप और सिग्नल प्रोसेसिंग की सटीकता में सुधार करने और बाहरी घटनाओं के लिए माइक्रोकंट्रोलर के प्रतिक्रिया समय को कम करने की अनुमति देता है, जो कि रीयल-टाइम सिस्टम के लिए विशेष रूप से महत्वपूर्ण है। 8xC51Fx (8xC51Rx) में लागू किया गया PCA ऐसा निकला

पद

मैक्स। आवृत्ति (मेगाहर्ट्ज)

ROM/EPROM (बाइट)

काउंटर

यह सौभाग्य की बात है कि इन माइक्रोकंट्रोलर्स का आर्किटेक्चर एक उद्योग मानक बन गया है, और पीसीए को एमके 8051 के विभिन्न संशोधनों में बार-बार पुन: पेश किया गया है।

इंटेल द्वारा निर्मित कई MCS-51 माइक्रोकंट्रोलर्स की कुछ विशेषताएँ तालिका 1.1 में दी गई हैं।

प्रारंभ में, MCS-51 आर्किटेक्चर की अड़चनें 8-बिट बैटरी-आधारित ALU और अपेक्षाकृत धीमी निर्देश निष्पादन थीं (सबसे तेज़ निर्देशों को निष्पादित करने के लिए 12 लूप आवश्यक हैं)।

तालिका 1.1

मैं/ओ

एडीसी इनपुट एक्स अंक

परिधि,

peculiarities

यू पालतू। (में)

कम वोल्टेज विकल्प

4 लेवल IRQ, क्लॉक आउट

4 लेवल IRQ, क्लॉक आउट

कम वोल्टेज संस्करण 8xC51Fx

4 लेवल IRQ, क्लॉक आउट

4 लेवल IRQ, क्लॉक आउट

4 लेवल IRQ, क्लॉक आउट

घड़ी आवृत्ति दंगा (एमसी तुल्यकालन आवृत्ति))। इसने बढ़ते प्रदर्शन और जटिल गणनाओं (16- और 32-बिट) की आवश्यकता वाले अनुप्रयोगों में परिवार के माइक्रोकंट्रोलर्स के उपयोग को सीमित कर दिया। MCS-51 आर्किटेक्चर के मूलभूत आधुनिकीकरण का मुद्दा अत्यावश्यक हो गया है। आधुनिकीकरण की समस्या इस तथ्य से जटिल थी कि 90 के दशक की शुरुआत तक MCS-51 परिवार के सॉफ्टवेयर और हार्डवेयर के क्षेत्र में पहले से ही बहुत सारे विकास किए जा चुके थे, जिसके संबंध में डिजाइन के मुख्य कार्यों में से एक नई वास्तुकला MCS-51 पर आधारित विकास के साथ हार्डवेयर और सॉफ्टवेयर संगतता को लागू करना था।

इस समस्या को हल करने के लिए इंटेल और फिलिप्स के विशेषज्ञों का एक संयुक्त समूह बनाया गया था, लेकिन बाद में इन दोनों कंपनियों के रास्ते अलग हो गए। परिणामस्वरूप, 1995 में दो महत्वपूर्ण रूप से भिन्न परिवार प्रकट हुए: Intel का MCS-251/151 और Philips का MCS-51XA (उपभाग 1.2 देखें)।

MCS-251 आर्किटेक्चर की मुख्य विशेषताएं:

24-बिट लीनियर एड्रेस स्पेस, 16 एमबी तक मेमोरी को संबोधित करता है;

रजिस्टर आर्किटेक्चर जो रजिस्टरों को बाइट्स, शब्द और दोहरे शब्दों के रूप में संदर्भित करने की अनुमति देता है;

बाहरी प्रोग्राम मेमोरी से तेजी से लाने के लिए पेज एड्रेसिंग मोड;

निर्देश कतार;

विस्तारित निर्देश सेट, जिसमें 16-बिट अंकगणितीय और तार्किक संचालन शामिल हैं;

विस्तारित स्टैक पता स्थान (64 KB तक);

2 चक्रों में सबसे तेज आदेश का निष्पादन।

MCS-251 निर्देश सेट में दो निर्देश सेट शामिल हैं - पहला सेट MCS-51 निर्देश सेट की एक प्रति है, और दूसरे में विस्तारित निर्देश हैं जो MCS-251 आर्किटेक्चर का लाभ उठाते हैं। माइक्रोकंट्रोलर का उपयोग करने से पहले, इसे कॉन्फ़िगर किया जाना चाहिए, अर्थात। प्रोग्रामर का उपयोग करते हुए, कॉन्फ़िगरेशन बिट्स को "बर्न" करें जो यह निर्धारित करते हैं कि पावर चालू होने के बाद कौन से निर्देश सेट सक्रिय हो जाएंगे। यदि आप निर्देशों का पहला सेट स्थापित करते हैं, तो इस मामले में MCS-251 परिवार का MK बाइनरी कोड स्तर पर MCS-51 के साथ संगत होगा। इस मोड को बाइनरी मोड कहा जाता है। यदि आप प्रारंभ में विस्तारित निर्देशों (स्रोत मोड) का एक सेट स्थापित करते हैं, तो MCS-51 के लिए लिखे गए प्रोग्रामों को MCS-251 के लिए क्रॉस-टूल्स पर पुनर्संकलन की आवश्यकता होगी। स्रोत मोड आपको अधिकतम दक्षता के साथ MCS-251 आर्किटेक्चर का उपयोग करने और उच्चतम प्रदर्शन प्राप्त करने की अनुमति देता है।

MCS-51 के यांत्रिक प्रतिस्थापन के रूप में MCS-251 माइक्रोकंट्रोलर्स के उपयोग पर ध्यान केंद्रित करने वाले उपयोगकर्ताओं के लिए, Intel MCS-151 माइक्रोकंट्रोलर्स को पहले से ही बाइनरी मोड स्थिति में प्रोग्राम किया गया है।

कई MCS-251/151 माइक्रोकंट्रोलर्स की कुछ विशेषताएं तालिका 1.1 में दी गई हैं।

वर्तमान में, पेंटियम प्रोसेसर बाजार के उद्देश्य से इंटेल, MCS-51 क्रिस्टल के उत्पादन को कम कर रहा है। सामान्य तौर पर, किसी विशेष डेवलपर के लिए, यह ध्यान नहीं दिया जा सकता है, जब तक कि वह 8xC51GB और 80C152Jx माइक्रोकंट्रोलर का उपयोग नहीं करता है, जिनके पास अन्य कंपनियों के उत्पादों के बीच उनके सटीक अनुरूप नहीं होते हैं। MCS-51 परिवार के अन्य सभी माइक्रोकंट्रोलर्स के लिए, वे सभी अन्य कंपनियों द्वारा कई बार दोहराए जाते हैं।

माइक्रोकंट्रोलर का आधार (चित्र 1 देखें) एक 8-बिट अंकगणितीय तर्क इकाई (ALU) है। एमके की स्मृति में हार्वर्ड वास्तुकला है, यानी। तार्किक रूप से विभाजित: प्रोग्राम मेमोरी में - पीपी (आंतरिक या बाहरी), 16-बिट कमांड काउंटर (एससी) और डेटा मेमोरी द्वारा संबोधित - आंतरिक (निवासी डेटा मेमोरी - आरपीडी) 128 (या 256) बाइट्स, साथ ही बाहरी (बाहरी) डेटा मेमोरी - वीपीडी) 64 केबी तक। भौतिक रूप से, प्रोग्राम मेमोरी को ROM (केवल पढ़ने के लिए) पर लागू किया जाता है, और डेटा मेमोरी को RAM पर लागू किया जाता है (डेटा को लिखा और पढ़ा जा सकता है)।

बाहरी संकेतों का स्वागत और वितरण 4 आठ-बिट पोर्ट Р0..Р3 के माध्यम से किया जाता है। बाहरी प्रोग्राम मेमोरी (ईपीएम) या डेटा मेमोरी (वीपीडी) तक पहुंचने पर, पोर्ट पी0 और पी2 को मल्टीप्लेक्स बाहरी पता/डेटा बस के रूप में उपयोग किया जाता है। P3 पोर्ट लाइनें वैकल्पिक कार्य भी कर सकती हैं (तालिका 1 देखें)।

16-बिट डीपीटीआर रजिस्टर संचायक रूपांतरण निर्देश में वीपीडी पता या प्रोग्राम मेमोरी बेस पता बनाता है। डीपीटीआर रजिस्टर को ऑपरेंड स्टोर करने के लिए दो स्वतंत्र 8-बिट रजिस्टरों (डीपीएल और डीपीएच) के रूप में भी इस्तेमाल किया जा सकता है।

8-बिट आंतरिक कमांड रजिस्टर (आरके) निष्पादित होने वाले कमांड का कोड प्राप्त करता है; यह कोड नियंत्रण सर्किट द्वारा डिकोड किया जाता है, जो नियंत्रण संकेत उत्पन्न करता है (चित्र 1 देखें)।

विशेष फ़ंक्शन रजिस्टरों तक पहुंच - RSF (SFR - चित्र 1 में वे एक बिंदीदार रेखा से घेरे हुए हैं) केवल 128 (80h) और अधिक से एड्रेस रेंज में डायरेक्ट बाइट एड्रेसिंग का उपयोग करके संभव है।


MCS-51 परिवार के माइक्रोकंट्रोलर्स के पहले मॉडल में रेजिडेंट डेटा मेमोरी (RDD) की क्षमता 128 बाइट्स थी। RPD के निचले 32 बाइट्स भी सामान्य-उद्देश्य वाले रजिस्टर हैं - RON (प्रत्येक 8 RON के 4 बैंक)। कार्यक्रम सक्रिय बैंक के 8 आरओएन में से एक पर लागू हो सकता है। प्रोसेसर स्थिति रजिस्टर - PSW में दो बिट्स की प्रोग्रामिंग करके RONs के सक्रिय बैंक का चयन किया जाता है।


टेबल 1 - एमसीएस-51 पिन असाइनमेंट

पिन नंबर पद उद्देश्य
1..8 पी 1 8-बिट अर्ध-द्विदिश I/O पोर्ट
9 आरएसटी

रीसेट सिग्नल (सक्रिय स्तर - उच्च);

आरएसटी सिग्नल रीसेट करता है: पीसी और सबसे विशेष फ़ंक्शन रजिस्टर (एसएफआर), सभी इंटरप्ट्स और टाइमर को अक्षम करना; रॉन बैंक 0 का चयन करता है; P0_P3 बंदरगाहों को "सभी" लिखता है, उन्हें इनपुट के लिए तैयार करता है; स्टैक पॉइंटर (SP) को कोड 07H लिखता है;

10..17

8-बिट अर्ध-द्विदिश I/O पोर्ट; संबंधित बिट "1" पर लिखने के बाद - अतिरिक्त (वैकल्पिक) कार्य करता है:

सीरियल पोर्ट इनपुट-आरएक्सडी;

सीरियल पोर्ट आउटपुट - टीएक्सडी;

बाहरी व्यवधान इनपुट 0 - ~ INT0;

बाहरी व्यवधान इनपुट 1 - ~ INT1;

टाइमर/काउंटर इनपुट 0 - T0;

टाइमर/काउंटर इनपुट 1 - T1;

स्ट्रोब आउटपुट। वीपीडी को लिखते समय संकेत - ~ डब्ल्यूआर;

स्ट्रोब आउटपुट। वीपीडी से पढ़ने पर संकेत - ~ आरडी;

18, 19 एक्स 1, एक्स 2 एक क्वार्ट्ज गुंजयमान यंत्र या एलसी सर्किट को जोड़ने के लिए निष्कर्ष;
20 जीएनडी सामान्य निष्कर्ष;
21..28 प2 8-बिट अर्ध-द्विदिश I/O पोर्ट; या बाहरी मेमोरी मोड (वीपीपी या वीपीडी) में आउटपुट एड्रेस ए;
29 पीएमई बाहरी प्रोग्राम मेमोरी स्ट्रोब पढ़ती है, केवल बाहरी रोम तक पहुँचने पर जारी की जाती है;
30 यवसुरा बाहरी मेमोरी पता स्ट्रोब (वीपीपी या वीपीडी);
31 ईए आरपीपी को अक्षम करने पर, इस इनपुट पर स्तर "0" एमके को आदेशों के चयन में बदल देता है केवल रनवे से ;
39..32 पी0 8-बिट द्विदिश I/O पोर्ट; बाहरी मेमोरी तक पहुंचने पर, यह ए (जो एएलई सिग्नल द्वारा बाहरी रजिस्टर में लिखा जाता है) को जारी करता है, और उसके बाद सिग्नल ~ पीएमई (कमांड के लिए) या ~ डब्ल्यूआर, ~ आरडी (वीपीडी में डेटा के लिए) के साथ सिंक्रोनस रूप से एक बाइट का आदान-प्रदान करता है। , बाहरी मेमोरी तक पहुँचने पर सभी इकाइयाँ पोर्ट रजिस्टर P0 में लिखी जाती हैं, वहाँ संग्रहीत जानकारी को नष्ट कर देती हैं;
40 यूसीसी आपूर्ति वोल्टेज उत्पादन

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

अप्रत्यक्ष या प्रत्यक्ष बाइट एड्रेसिंग का उपयोग करके आरपीडी तक पहुंच संभव है (डायरेक्ट बाइट एड्रेसिंग आरपीडी के केवल पहले 128 बाइट्स तक पहुंचने की अनुमति देता है)।

128 (80h) से 255 (FFh) तक विस्तारित RPD क्षेत्र (MCS-52 परिवार और बाद के परिवारों के माइक्रोकंट्रोलर्स के लिए) को केवल अप्रत्यक्ष पता पद्धति का उपयोग करके संबोधित किया जा सकता है।

तालिका 2 - विशेष कार्यों के ब्लॉक रजिस्टर (एस एफ आर)

मेनमो कोड नाम
0E0h *एसीसी बैटरी
0F0h *बी बैटरी विस्तारक पंजीकृत करें
0D0h *पीएसडब्ल्यू प्रोसेसर स्थिति शब्द
0ब0ह * प3 बंदरगाह 3
0A0h * प2 बंदरगाह 2
90h * प1 बंदरगाह 1
80 ह *प0 बंदरगाह 0
0B8h * आई.पी बाधा प्राथमिकता रजिस्टर
0A8h *अर्थात इंटरप्ट मास्क रजिस्टर
99h एसबीयूएफ सीरियल ट्रांसीवर बफर
98h * स्कोन सीरियल पोर्ट कंट्रोल/स्टेटस रजिस्टर
89h टीएमओडी टाइमर/काउंटर मोड रजिस्टर
88h * टीसीओएन टाइमर/काउंटर कंट्रोल/स्टेटस रजिस्टर
8ध TH1 टाइमर 1 (उच्च बाइट)
8बीएच TL1 टाइमर 1 (कम बाइट)
8ch वें0 टाइमर 0 (हाई बाइट)
8आह TL0 टाइमर 0 (कम बाइट)
83h डीपीएच डेटा पॉइंटर रजिस्टर (DPTR) (हाई बाइट)
82h डीपीएल डेटा पॉइंटर रजिस्टर (डीपीटीआर) (कम बाइट)
81h सपा ढेर सूचक रजिस्टर
87h पीसीओएन मांग शक्ति नियंत्रण रजिस्टर

2. सॉफ्टवेयर मॉडल एमसीएस-51


कमांड प्रकार एमसीएस-51

लगभग आधे आदेश 1 मशीन चक्र (एमसी) में निष्पादित किए जाते हैं। 12 मेगाहट्र्ज की क्रिस्टल ऑसीलेटर आवृत्ति के साथ, इस तरह के कमांड के निष्पादन का समय 1 μs है। शेष आदेशों को 2 मशीन चक्रों में निष्पादित किया जाता है, अर्थात। 2 एमएस के लिए। 4 मशीन चक्रों में केवल गुणन (MUL) और भाग (DIV) निर्देश निष्पादित किए जाते हैं।

एक मशीन चक्र के दौरान, निर्देश के दो बाइट पढ़ने के लिए प्रोग्राम मेमोरी (आंतरिक या बाहरी) तक दो पहुंचें होती हैं, या बाहरी डेटा मेमोरी (ईडीएम) तक एक पहुंच होती है।

3. एमसीएस-51 को संबोधित करने के तरीके (तरीके)।

1. रजिस्टर एड्रेसिंग - 8-बिट ऑपरेंड रजिस्टरों के चयनित (सक्रिय) बैंक के आरओएन में स्थित है;

2 प्रत्यक्ष पता (संकेत - # द्वारा इंगित) - ऑपरेंड कमांड के दूसरे (और 16-बिट ऑपरेंड और तीसरे में) बाइट में स्थित है;

3 इनडायरेक्ट एड्रेसिंग (- @ साइन द्वारा दर्शाया गया) - ऑपरेंड डेटा मेमोरी (RPD या VPD) में स्थित है, और मेमोरी सेल का पता इनडायरेक्ट एड्रेसिंग (R0 या R1) के RONs में से एक में समाहित है; पुश और पीओपी कमांड में, पता स्टैक पॉइंटर एसपी में निहित है; DPTR रजिस्टर में 64K तक का VPD पता हो सकता है;

4 डायरेक्ट बाइट एड्रेसिंग - (डीआईआर) - आरपीडी सेल (पते 00h…7Fh) और स्पेशल फंक्शन रजिस्टर SFR (एड्रेस 80h…0FFh) तक पहुंचने के लिए इस्तेमाल किया जाता है;

5 डायरेक्ट बिट एड्रेसिंग - (बिट) - 20H ... 2FH पते पर RPD सेल में स्थित अलग-अलग एड्रेसेबल 128 बिट्स तक पहुँचने के लिए और विशेष फ़ंक्शन रजिस्टरों के अलग-अलग एड्रेसेबल बिट्स तक पहुँचने के लिए उपयोग किया जाता है (तालिका 3 और प्रोग्राम मॉडल देखें);

6 इनडायरेक्ट इंडेक्स एड्रेसिंग (@ साइन द्वारा दर्शाया गया) - प्रोग्राम मेमोरी में टेबल देखने को सरल करता है, पीपी एड्रेस बेस रजिस्टर (पीसी या डीपीटीआर) और इंडेक्स रजिस्टर (बैटरी) के योग से निर्धारित होता है;

7 इम्प्लिकिट (बिल्ट-इन) एड्रेसिंग - निर्देश कोड में एक ऑपरेंड (अक्सर अक्युमुलेटर के लिए) में से एक के लिए एक निहित (डिफ़ॉल्ट रूप से) संदर्भ होता है।

4. प्रोसेसर स्थिति शब्द (पीएसडब्ल्यू) प्रारूप

C - कैरी (CARY) या बॉरो फ्लैग, बिट-ऑपरेटेड निर्देशों में "बूलियन संचायक" के रूप में भी कार्य करता है;

एसी - सहायक (अतिरिक्त) कैरी फ़्लैग - "1" पर सेट करें यदि अतिरिक्त कमांड (एडीडी, एडीडीसी) में कम ऑर्डर टेट्राड से उच्च ऑर्डर (यानी 3 बिट से 4 बिट तक) का कैरी होता है;

F0 - यूजर फ्लैग - सॉफ्टवेयर द्वारा सेट, रीसेट और चेक किया गया;

RS1 RS0 किनारा पता (डीआईआर)
0 0 0 00h..07h
0 1 1 08h..0fh
1 0 2 10h..17h
1 1 3 18h..1fh

RS1,RS0 - रजिस्टर बैंक चयन:

OV - अंकगणितीय अतिप्रवाह फ़्लैग; इसका मूल्य ALU के सबसे महत्वपूर्ण बिट के इनपुट और आउटपुट कैरी सिग्नल के XOR ऑपरेशन द्वारा निर्धारित किया जाता है; इस ध्वज का एक मान इंगित करता है कि दो के पूरक कोड में एक अंकगणितीय ऑपरेशन का परिणाम सीमा से बाहर है: -128…+127; विभाजन ऑपरेशन करते समय, OV ध्वज रीसेट हो जाता है, और शून्य से विभाजन के मामले में, यह सेट हो जाता है; गुणा करते समय, परिणाम 255 (0FFH) से अधिक होने पर OV ध्वज सेट किया जाता है;

बिट पीएसडब्ल्यू - आरक्षित, इसमें एक ट्रिगर होता है, जो लिखने या पढ़ने के लिए उपलब्ध होता है;

पी - समता ध्वज - संचायक में एकल बिट्स की संख्या को एक सम संख्या में जोड़ना है; एक कॉम्बिनेशन सर्किट द्वारा बनता है (केवल पढ़ने के लिए प्रोग्रामेटिक रूप से उपलब्ध)।

MCS-51 माइक्रोकंट्रोलर्स के पास "Z" फ्लैग नहीं है। लेकिन कंडीशनल जंप इंस्ट्रक्शंस (JZ, JNZ) में, कॉम्बिनेशन सर्किट एक्युमुलेटर के करंट (जीरो या नॉन-जीरो) कंटेंट की जांच करता है।

ऑपरेंड के ट्रांसफर और एक्सचेंज के सभी कमांड एक्युमुलेटर के माध्यम से किए जा सकते हैं (चित्र 3 देखें)। इसके अलावा, / से बाहरी मेमोरी (प्रोग्राम मेमोरी या डेटा मेमोरी) में स्थानांतरण केवल बैटरी के माध्यम से किया जा सकता है।

अधिकांश स्थानान्तरण फॉरवर्ड बाइट (डीआईआर) के माध्यम से भी किए जा सकते हैं। यहां तक ​​कि डीआईआर-टू-डीआईआर ट्रांसफर भी हैं (चित्र 3 देखें)।

RON से RON में मिसिंग ट्रांसफर को RON से फॉरवर्ड बाइट डायर में ट्रांसफर के रूप में लागू किया जा सकता है (यह देखते हुए कि RON रेजिडेंट डेटा मेमोरी के शुरुआती क्षेत्र में स्थित हैं, जिनमें से सेल को dir के रूप में संबोधित किया जा सकता है)।

XCH एक्सचेंज कमांड आपको दोनों ऑपरेंड को नष्ट किए बिना बाइट भेजने की अनुमति देता है।

अंकगणितीय आदेश केवल एक्युमुलेटर में निष्पादित किए जाते हैं। इसलिए, पहले ऑपरेंड को पहले Accumulator में रखा जाना चाहिए और फिर दूसरे ऑपरेंड को जोड़ना या घटाना चाहिए। परिणाम संचायक में रखा गया है।


SUBB घटाव आदेश केवल उधार के साथ निष्पादित किया जाता है (यानी, Cary ध्वज को भी परिणाम से घटाया जाता है)। इसलिए, उधार के बिना घटाव निर्देश को निष्पादित करने के लिए, पहले स्पष्ट ध्वज सी (सीएलआरसी) निर्देश को निष्पादित करना आवश्यक है।

एक-बाइट ऑपरेंड को गुणा करने का निर्देश - MULAB - एक दो-बाइट (16 बिट) का परिणाम देता है: निम्न बाइट संचायक में है, उच्च बाइट रजिस्टर B में है।

एक-बाइट ऑपरेंड को विभाजित करने के निर्देश को निष्पादित करने का परिणाम - DIVAB - रखा गया है: भागफल - एक संचायक, शेष - रजिस्टर बी में।

INC अंकगणितीय निर्देश चयनित ऑपरेंड में एक जोड़ता है। डीईसी अंकगणितीय निर्देश चयनित ऑपरेंड से एक घटाता है। संचायक दशमलव सुधार (डीएए) निर्देश आपको बाइनरी कोडेड दशमलव (बीसीडी) संख्याओं को हेक्साडेसिमल (हेक्स) प्रारूप में परिवर्तित किए बिना जोड़ने में मदद करता है। स्रोत ऑपरेंड बीसीडी प्रारूप में होना चाहिए, यानी। एक बाइट के प्रत्येक टेट्रैड में केवल 0 से 9 तक की संख्याएँ होती हैं (हेक्साडेसिमल संख्याएँ नहीं हो सकती हैं: A, B, C, D, E, F)। इसलिए, एक बाइट में पैक किए गए बीसीडी नंबरों के लिए 00 से 99 तक के नंबर हो सकते हैं, या अनपैक्ड बीसीडी नंबरों के लिए 0 से 9 तक के नंबर हो सकते हैं।

डीए ए - दशमलव सुधार कमांड प्रोसेसर में बीसीडी नंबर जोड़ने के बाद संचायक की सामग्री पर कार्रवाई करता है (संख्या हेक्साडेसिमल अंकगणितीय के नियमों के अनुसार जोड़े गए थे) निम्नानुसार (उदाहरण देखें):

· यदि एक्युमुलेटर के लो-ऑर्डर टेट्राड की सामग्री 9 से अधिक है या सहायक कैरी फ्लैग सेट है (AC = 1), तो एक्युमुलेटर की सामग्री में 6 जोड़ दिया जाता है (अर्थात, हेक्स में गायब छह अंक) प्रारूप);

· यदि उसके बाद संचायक के उच्च क्रम की सामग्री 9 से अधिक है या फ्लैग सी सेट है, तो संख्या 6 को संचायक के उच्च क्रम में जोड़ा जाता है।

वृद्धि निर्देश (INC) के बाद दशमलव सुधार निर्देश DA A का उपयोग नहीं किया जाता है क्योंकि वृद्धि निर्देश C और AC फ़्लैग को प्रभावित (परिवर्तन) नहीं करता है।

तर्क आदेश:

तार्किक "और" - एएनएल,

तार्किक "या" - ओआरएल,

एक्सओआर लॉजिकल कमांड - एक्सआरएल - को एक्युमुलेटर (साथ ही अंकगणित) में निष्पादित किया जाता है, लेकिन लॉजिकल कमांड को डायरेक्ट एड्रेस बाइट (डीआईआर) में भी निष्पादित करना संभव है। इस मामले में, दूसरा ऑपरेंड हो सकता है:

बैटरी में या

एक निर्देश में एक तत्काल संकार्य।

रोटेशन निर्देश (RR A, RL A) और CARY फ्लैग (RRC A, RLC A) के माध्यम से रोटेशन निर्देश संचायक की सामग्री को 1 बिट घुमाते हैं। बिट ऑपरेंड केवल C फ्लैग के माध्यम से भेजे जाते हैं।

आरईटीआई निर्देशों और आईई और आईपी रजिस्टरों तक पहुंचने वाले किसी भी निर्देश के अपवाद के साथ, चरण S5P2 में प्रत्येक मशीन चक्र के अंत में इंटरप्ट सिस्टम की स्थिति का सर्वेक्षण किया जाता है। अनुरोध के चरण और उस निर्देश के मशीन चक्रों की संख्या के आधार पर जिस समय अनुरोध प्राप्त किया गया था, उसके आधार पर इंटरप्ट अनुरोध को सर्विसिंग के लिए प्रतिबद्ध होने के क्षण से आवृत्ति fOSC की 38 से 86 अवधि लगती है।

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

प्रारंभ पता (इंटरप्ट वेक्टर):

बाहरी रुकावट INT0।

टाइमर/काउंटर इंटरप्ट TC0.

बाहरी व्यवधान INT1।

टाइमर/काउंटर इंटरप्ट TC1.

सीरियल पोर्ट इंटरप्ट।

2.7। MCS-51 परिवार के एड्रेसिंग मेथड्स और कमांड सिस्टम

MCS-51 परिवार का कमांड सिस्टम यूनिवर्सल पोर्ट्स P0...P3 और प्राथमिक सूचना प्रसंस्करण के माध्यम से लचीले डेटा इनपुट/आउटपुट को व्यवस्थित करने पर केंद्रित है। बिट्स के साथ संचालन और उनके मूल्य द्वारा नियंत्रण के हस्तांतरण पर विशेष ध्यान दिया जाता है। इस तरह के ऑपरेशन करने वाले निर्देश एक बड़े समूह का निर्माण करते हैं और संबंधित हार्डवेयर के साथ मिलकर MCS-51 आर्किटेक्चर के हिस्से के रूप में तथाकथित "बूलियन प्रोसेसर" बनाते हैं।

कमांड सिस्टम प्रोग्रामर को एड्रेसिंग विधियों और सॉफ़्टवेयर-सुलभ हार्डवेयर संसाधनों के पूर्ण सेट के साथ अधिकांश ऑपरेशनों का उपयोग करने की क्षमता प्रदान करता है।

2.7.1। संबोधित करने के तरीके

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

यदि पता उस मेमोरी सेल की संख्या को इंगित करता है जिसमें ऑपरेंड स्थित है या जहां इसे दर्ज किया गया है, तो इसे सीधा पता कहा जाता है।

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

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

MCS-51 फैमिली कमांड सिस्टम में उपयोग की जाने वाली मुख्य एड्रेसिंग विधियाँ निम्नलिखित हैं।

निहित संबोधन. कमांड में ऑपरेशन में भाग लेने वाले ऑपरेंड के पते या उस पते के बारे में स्पष्ट संकेत नहीं होते हैं जिस पर ऑपरेशन का परिणाम रखा गया है, लेकिन यह पता निहित है। आदेशों में, संचायक को अक्सर ऑपरेशन के परिणाम के गंतव्य के रूप में स्पष्ट रूप से संबोधित किया जाता है। उदाहरण के लिए, ADD A,R1 निर्देश द्वारा संचायक (A) और वर्तमान डेटाबैंक के R1 रजिस्टर की सामग्री को जोड़ने का परिणाम निहित रूप से संबोधित संचायक को लिखा जाता है। संपूर्ण निर्दिष्ट निर्देश स्मृति में एक बाइट लेता है, जबकि केवल संचायक (SFR क्षेत्र के 8Eh) के पते में एक बाइट होता है।

प्रत्यक्ष संबोधन. कमांड के एड्रेस फील्ड में, सम्‍मिलित है

यह ऑपरेंड का पता नहीं है जो रहता है, बल्कि ऑपरेंड ही है। डायरेक्ट एड्रेसिंग नंबर से पहले विशेष वर्ण # द्वारा इंगित किया जाता है। उदाहरण के लिए, कमांड MOV A,#15h हेक्साडेसिमल नंबर 15 (कमांड की दूसरी बाइट) को संचायक में लोड करता है। कमांड सिस्टम में, डायरेक्ट एड्रेसिंग को #डेटा के रूप में दर्शाया जाता है, जहाँ डेटा एक संख्या है

(डेटा = 00h...FFh)।

प्रत्यक्ष संबोधन. निर्देश पता फ़ील्ड डेटा मेमोरी स्थान का सीधा पता निर्दिष्ट करता है जिसमें ऑपरेंड स्थित है या जहां यह लिखा गया है। उदाहरण के लिए, MOV A,15h निर्देश संचायक में पते 15h पर DSEG सेल की सामग्री को लोड करता है। मेमोरी सेल को सीधे एड्रेस किया जा सकता है, जबकि संचायक को पूरी तरह से एड्रेस किया जा सकता है। एड्रेस किए गए ऑपरेंड के स्थान के आधार पर, डायरेक्ट एड्रेसिंग को रजिस्टर डायरेक्ट एड्रेसिंग और एब्सोल्यूट एड्रेसिंग में उप-विभाजित किया जाता है।

डायरेक्ट रजिस्टर एड्रेसिंग. कमांड एड्रेस फील्ड में वर्तमान रजिस्टर बैंक का डायरेक्ट रजिस्टर एड्रेस होता है। प्रत्येक बैंक में आठ रजिस्टर होते हैं, और उन्हें संबोधित करने के लिए तीन-बिट प्रत्यक्ष पते की आवश्यकता होती है। mnemonics कमांड में, एड्रेसेबल रजिस्टर को Rn द्वारा निरूपित किया जाता है, जहाँ n = 0 ... 7। कमांड के सभी क्षेत्र एक बाइट में फिट होते हैं। ऐसे सम्बोधन को लघु कहा जाता है। उदाहरण के लिए, MOV R4, R1।

प्रत्यक्ष निरपेक्ष संबोधनआपको किसी भी DSEG सेल और SFR क्षेत्र तक पहुँचने की अनुमति देता है। इस मामले में प्रत्यक्ष पता एक बाइट लेता है, और कमांड दो बाइट लेता है। कमांड सिस्टम में, डायरेक्ट एड्रेस बाइट को डायरेक्ट (डायरेक्ट) (डायरेक्ट = 00h ... FFh) शब्द से दर्शाया जाता है। उदाहरण के लिए, निर्देश MOV 80h,R2 (या MOV P0,R2) वर्तमान डेटाबैंक के रजिस्टर R2 की सामग्री को पोर्ट P0 (SFR के स्थान 80h) में लोड करता है। यदि दोनों ऑपरेंड प्रत्यक्ष पूर्ण रूप से पता योग्य हैं, तो निर्देश तीन-बाइट निर्देश बन जाता है (उदाहरण के लिए MOV 80h,15h)।

अप्रत्यक्ष संबोधन. एड्रेस फील्ड में मेमोरी लोकेशन का पता होता है जहां ऑपरेंड का सीधा पता स्थित होता है। कमांड सिस्टम में, अप्रत्यक्ष संबोधन @ विशेष वर्ण द्वारा इंगित किया जाता है। संपत्ति

प्रत्येक रजिस्टर बैंक के R0 और R1 (@Ri, i = 0.1) रजिस्टरों को सीधे पता स्टोर करना होगा। उदाहरण के लिए, यदि वर्तमान रजिस्टर बैंक के R1 रजिस्टर की सामग्री 15h है, तो MOV A,@R1 निर्देश उपरोक्त MOV A,15h निर्देश के समान कार्य करेगा - यह DSEG मेमोरी लोकेशन की सामग्री को लोड करेगा संचायक में पते 15h के साथ। हालाँकि, MOV A, @ R1 कमांड एक-बाइट है, लेकिन सबसे महत्वपूर्ण बात यह है कि R1 रजिस्टर की सामग्री को बदलकर पते को प्रोग्रामेटिक रूप से बदलना संभव है।

सापेक्ष संबोधन. रिलेटिव एड्रेसिंग के साथ, डायरेक्ट एड्रेस को कमांड के एड्रेस फील्ड में बेस एड्रेस जोड़कर बनाया जाता है। प्रोग्राम काउंटर की सामग्री को आधार पते के रूप में उपयोग किया जाता है, और निर्देश का पता फ़ील्ड आठ-बिट रिले (सापेक्ष) ऑफ़सेट है। रिले नंबर की व्याख्या कमांड द्वारा दो के पूरक में दर्शाए गए एक हस्ताक्षरित पूर्णांक के रूप में की जाती है। इसकी प्रेजेंटेशन रेंज (-128...+127) है। रिले संख्या का निर्धारण करते समय, ध्यान रखें कि प्रोग्राम काउंटर अगले निर्देश को निष्पादित करने के लिए इंगित करता है। रिलेटिव एड्रेसिंग का व्यापक रूप से कंट्रोल ट्रांसफर कमांड में उपयोग किया जाता है, जो रिलोकेबल प्रोग्राम मॉड्यूल के निर्माण की अनुमति देता है। रिलेटिव एड्रेसिंग के साथ कंट्रोल ट्रांसफर कमांड दोनों दिशाओं में (-128...+127) बाइट्स द्वारा पीसी प्रोग्राम काउंटर की वर्तमान स्थिति के सापेक्ष ब्रांचिंग की अनुमति देता है।

असेंबली लैंग्वेज प्रोग्राम में, ऑफ़सेट फ़ील्ड का उपयोग उस लेबल को निर्दिष्ट करने के लिए किया जा सकता है जिस पर जाना है। अनुवाद के परिणामस्वरूप, असेंबलर ऑफ़सेट मान की गणना करेगा यदि यह (-128…+127) से अधिक नहीं है। अन्यथा, एक त्रुटि संदेश जारी किया जाएगा।

मूल संबोधनएक प्रकार के सापेक्ष संबोधन का प्रतिनिधित्व करता है। इस मामले में प्रत्यक्ष पता कमांड में निर्दिष्ट पते को आधार रजिस्टर की सामग्री में जोड़कर बनाया जाता है, जो आधार पते को संग्रहीत करता है। MCS-51 परिवार में आधार रजिस्टर का कार्य DPTR डेटा पॉइंटर रजिस्टर या पीसी प्रोग्राम काउंटर द्वारा किया जाता है। तालिकाओं और डेटा सरणियों को संसाधित करते समय इस प्रकार का संबोधन विशेष रूप से उपयोगी होता है। एमओवीसी ए, @ ए + डीपीटीआर और एमओवीसी ए, @ ए + पीसी निर्देशों में, डीपीटीआर और ए या पीसी और ए रजिस्टरों की सामग्री के योग के रूप में 16-बिट प्रत्यक्ष पता बनता है।

पेज एड्रेसिंग. पेज एड्रेसिंग का उपयोग करते समय, मेमोरी को समान लंबाई के कई पेजों में विभाजित किया जाता है। पेज एड्रेसिंग एक अलग पेज रजिस्टर द्वारा किया जाता है, और पेज के भीतर मेमोरी सेल्स को निर्देश में निहित एड्रेस द्वारा एड्रेस किया जाता है। प्रत्यक्ष पता पृष्ठों के पते और पृष्ठ के भीतर मेमोरी सेल के पते को जोड़कर (संलग्न) करके बनाया जाता है। MOVX A,@Ri निर्देश में, पोर्ट P2 (पता का उच्च बाइट) पृष्ठ रजिस्टर का कार्य करता है, और रजिस्टर Ri (पते का निम्न बाइट) की सामग्री पृष्ठ के भीतर पता निर्दिष्ट करती है। इस मामले में, मेमोरी उनमें से प्रत्येक में 256 कोशिकाओं के 256 पृष्ठों में विभाजित है।

स्टैक एड्रेसिंगएड्रेसलेस कमांड में उपयोग किया जाता है और यह ऑटो-इन्क्रीमेंट और ऑटो-डिक्रीमेंट एड्रेसिंग विधियों का एक संयोजन है, जो LIFO (L ast I nput - F rst O utput) के सिद्धांत पर काम करता है - "आखिरी में - पहले बाहर"। ढेर डीएसईजी में स्थित है और बढ़ते पते की दिशा में बढ़ता है। स्टैक के शीर्ष का पता स्टैक पॉइंटर एसपी में निहित है। जब एक बाइट को स्टैक पर धकेला जाता है, तो पहले SP की सामग्री बढ़ाई जाती है, और फिर पता लिखा जाता है। स्टैक से एक बाइट पढ़ते समय, पहले एसपी द्वारा बताए गए पते पर पढ़ें, और फिर एसपी को घटाएं। स्टैक का उपयोग करते समय, ध्यान रखें कि स्टैक की गहराई (स्टैक द्वारा अधिकृत मेमोरी सेल की अधिकतम संख्या) हार्डवेयर द्वारा नियंत्रित नहीं होती है। स्टैक में अत्यधिक वृद्धि के साथ, इसके लिए इच्छित मेमोरी सेल को उनमें जानकारी के नुकसान के साथ कब्जा नहीं किया जा सकता है। हार्डवेयर स्टैक का उपयोग इंटरप्ट सर्विस करते समय रिटर्न एड्रेस को स्टोर करने के लिए किया जाता है।

2.7.2। MCS-51 फैमिली कमांड सिस्टम

कमांड सिस्टम को परिशिष्ट 2 के टेबल्स A2.1...A2.6 में प्रस्तुत किया गया है। टेबल्स कमांड का नाम, इसके मेनेमोनिक, बाइनरी ऑपरेशन कोड, फ़्लैग्स C, OV, AC पर निष्पादित कमांड का प्रभाव दिखाते हैं। और पी, बाइट्स (बी) में कमांड की लंबाई और मशीन चक्र (सी) में निष्पादन समय, साथ ही निर्देश द्वारा किए गए रूपांतरण की सामग्री। अल्पविराम का उपयोग कमांड में पता फ़ील्ड के लिए विभाजक के रूप में किया जाता है। पठनीयता में सुधार करने के लिए, उपयोग किए जा रहे असेंबलर द्वारा समर्थित होने पर अल्पविराम के बाद रिक्त स्थान जोड़े जा सकते हैं।

कमांड के पूरे सेट को 5 समूहों में विभाजित किया जा सकता है: डेटा ट्रांसफर ऑपरेशंस, अंकगणित ऑपरेशंस, लॉजिकल ऑपरेशंस, बिट्स के साथ ऑपरेशंस और कंट्रोल ट्रांसफर ऑपरेशंस।

डेटा ट्रांसफर ऑपरेशन कमांड ग्रुप(टेबल ए2.1) सह-

MOV (DSEG और RSEG के बीच डेटा ट्रांसफर), MOVC (CSEG और A के बीच), MOVX (XSEG और A के बीच), PUSH और POP स्टैक एक्सेस कमांड और दो XCH और XCHD एक्सचेंज कमांड रखता है। सभी डेटा ट्रांसफर निर्देश, जिनका गंतव्य संचायक है, संचायक की सामग्री के समता ध्वज P को सेट करते हैं, और सीधे संबोधित करने वाले निर्देश जिनका गंतव्य PSW रजिस्टर है, सभी झंडों को बदल देते हैं। सबसे क्षमतावान MOV निर्देश है, जो चार एड्रेसिंग विधियों का उपयोग करता है: डायरेक्ट रजिस्टर (A, Rn, DPTR), डायरेक्ट (डायरेक्ट), इनडायरेक्ट (@Ri), डायरेक्ट (#डेटा, #डेटा16)। कमांड का दूसरा ऑपरेंड स्रोत है, पहला ऑपरेंड गंतव्य है। गंतव्य को निर्दिष्ट करने के लिए तीन एड्रेसिंग विधियाँ (प्रत्यक्ष को छोड़कर) हैं, और चारों स्रोत को निर्दिष्ट करने के लिए हैं। तीन-बाइट MOV प्रत्यक्ष, प्रत्यक्ष निर्देश RSEG सहित किसी भी दो मेमोरी सेल (DSEG और SFR) के बीच स्थानांतरण प्रदान करता है। RSEG के साथ आदान-प्रदान के लिए, विशेष दो- और एक-बाइट प्रारूप प्रदान किए जाते हैं:

विशेष निर्देश MOV DPTR,#data16 मान डेटा16 के साथ 16-बिट DPTR पॉइंटर लोड करता है।

MOVC निर्देश आपको CSEG प्रोग्राम मेमोरी से नियंत्रण डिवाइस के कमांड रजिस्टर में नहीं, बल्कि ऑपरेटिंग डिवाइस के संचायक में जानकारी पढ़ने की अनुमति देता है। कमांड दो एड्रेसिंग विधियों का उपयोग करता है: DPTR पर आधारित और PC के सापेक्ष। दोनों ही मामलों में, अहस्ताक्षरित पूर्णांक ऑफ़सेट (इंडेक्स) संचायक में संग्रहीत होता है। संचायक परिणाम के प्राप्तकर्ता के रूप में भी कार्य करता है। कमांड आपको तालिकाओं द्वारा त्वरित रीकोडिंग करने की अनुमति देता है।

बाहरी मेमोरी को MOVX निर्देश का उपयोग करके एक्सेस किया जाता है। एक्सचेंज संचायक और बाहरी XSEG के बीच बाइट्स द्वारा किया जाता है। एक XSEG सेल को दो तरीकों से संबोधित किया जा सकता है: अप्रत्यक्ष रूप से 16-बिट पॉइंटर DPTR के माध्यम से और पृष्ठ-वार अप्रत्यक्ष रूप से 8-बिट पॉइंटर Ri, i=0,1 के माध्यम से। बाद वाले मामले में, पेज रजिस्टर P2 है।

अनएड्रेस्ड PUSH और POP कमांड डेटा ट्रांसफर प्रदान करते हैं

DSEG, RSEG और SFR के बीच।

XCH एक्सचेंज कमांड दो-तरफ़ा बाइट एक्सचेंज प्रदान करता है, और XCHD कमांड बाइट ऑपरेंड के निचले टेट्राड्स प्रदान करता है।

अंकगणितीय संक्रियाओं के लिए निर्देशों का समूह(टेबल ए2.2) सह-

ADD जोड़ने, ADDC जोड़ने, उधार घटाना SUBB, एक INC और DEC द्वारा वेतन वृद्धि और कमी, पैक किए गए प्रारूप बाइनरी कोडेड दशमलव (BCD) जोड़, MUL गुणा और DIV को विभाजित करने के लिए निर्देश रखता है। ऑपरेशन अहस्ताक्षरित पूर्णांकों पर किए जाते हैं। जोड़ और घटाव के संचालन में, संचायक पहला संकार्य है और परिणाम का गंतव्य है। दूसरे ऑपरेंड को परिभाषित करने के लिए डायरेक्ट रजिस्टर, डायरेक्ट एब्सोल्यूट, डायरेक्ट और इनडायरेक्ट एड्रेसिंग का उपयोग किया जाता है। INC और DEC संचालन एक संचायक, एक प्रत्यक्ष पता योग्य रजिस्टर, एक प्रत्यक्ष या अप्रत्यक्ष रूप से पता योग्य स्मृति स्थान पर लागू होते हैं। इसके अलावा, INC ऑपरेशन 16-बिट DPTR पॉइंटर रजिस्टर की सामग्री पर लागू होता है।

पूर्णांक गुणन और अहस्ताक्षरित विभाजन संचालन में संचायक और रजिस्टर बी शामिल होते हैं। गुणन में, ए के 8-बिट मान को बी के 8-बिट मान से गुणा किया जाता है, और 16-बिट परिणाम बीए को जोड़ने के लिए लिखा जाता है। इस मामले में, रजिस्टर बी उत्पाद के उच्चतम हिस्से को स्टोर करता है। यदि उत्पाद 255 से अधिक है तो OV फ़्लैग सेट किया जाता है। जब 8-बिट मान A को 8-बिट मान B से विभाजित किया जाता है, तो भागफल A को लिखा जाता है और शेष भाग B को। 0 से विभाजित करने का प्रयास सेट करता है OV अतिप्रवाह ध्वज।

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

तर्क निर्देश समूह(टेबल ए2.3 ) में तीन विशिष्ट ऑपरेशन होते हैं: ANL - तार्किक AND, ORL - तार्किक OR, XRL - तार्किक अनन्य OR। पहले ऑपरेंड का स्रोत

या तो संचायक ए या सीधे पता योग्य मेमोरी सेल है। दूसरा ऑपरेंड चार मूल एड्रेसिंग विधियों में से एक द्वारा निर्दिष्ट किया जाता है। समूह भी शामिल है एकल संचालनसंचायक की सामग्री के ऊपर: सीएलआर - क्लियर, सीपीएल - व्युत्क्रम, साथ ही आरएल, आरएलसी, आरआर और आरआरसी - चक्रीय संचालन और दाएं और बाएं विस्तारित बदलाव। इसमें SWAP संचायक में टेट्राड्स के आदान-प्रदान का संचालन भी शामिल है, जिसे चार बिट्स द्वारा एक बाइट के चक्रीय बदलाव के रूप में व्याख्या किया जा सकता है।

बिट ऑपरेशन निर्देश समूह(तालिका A2.6) में सह-शामिल हैं

आदेश SETB - 1 पर थोड़ा सा सेट करें, CLR - 0 पर थोड़ा सा रीसेट करें, CPL - थोड़ा उलटा करें, ANL और ORL - फ़्लैग C की सामग्री का तार्किक और और तार्किक OR और सीधे संबोधित बिट, MOV - बिट अग्रेषण।

में बिटवाइज़ ऑपरेशंस में, C फ़्लैग बूलियन संचायक की भूमिका निभाता है। सी ध्वज की सामग्री या बीएसईजी क्षेत्र के सीधे पता योग्य बिट को ऑपरेंड के रूप में उपयोग किया जाता है। एएनएल और ओआरएल संचालन में, आप सीधे संबोधित बिट (बिट) या सामग्री के व्युत्क्रम (/ बिट) की सामग्री का उपयोग कर सकते हैं।

में इस समूह में रिश्तेदार के साथ सशर्त कूद निर्देश भी शामिल हैं 8-बिट ऑफ़सेट रिले। बिट सेट (जेबी कमांड) या क्लियर (जेएनबी कमांड) होने पर एक सशर्त शाखा को निष्पादित किया जा सकता है। विशेष रूप से नोट जेबीसी निर्देश है, जो, जब बिट सेट होता है, एक शाखा लागू करता है और साथ ही बिट को 0 पर रीसेट करता है।

कंट्रोल ट्रांसफर कमांड ग्रुप(सारणी क2.4 और क2.5)

AJMP, LJMP, SJMP, JMP, जंप कंडीशनल JZ, JNZ, CJNE, कॉल ACALL, LCALL, रिटर्न RET, RETI, और कंडीशनल जम्प DJNZ के साथ अपडेट के बिना शर्त जंप निर्देश रखता है। खाली NOP कमांड भी यहाँ शामिल है।

में रिलोकेबल प्रोग्राम मॉड्यूल के निर्माण की अनुमति देने के लिए रिलेटिव एड्रेसिंग का व्यापक रूप से कंट्रोल ट्रांसफर कमांड में उपयोग किया जाता है। रिश्तेदार का पता है 8-बिट ऑफ़सेट रिले एक हस्ताक्षरित बाइट है जो पीसी की वर्तमान स्थिति के सापेक्ष (-128… +127) बाइट्स में संक्रमण प्रदान करता है। 64 KB पता स्थान में किसी अन्य बिंदु पर जाने के लिए या तो प्रत्यक्ष Addr16 या अप्रत्यक्ष @A+DPTR पते का उपयोग किया जा सकता है। बाद के मामले में, ए की सामग्री को एक हस्ताक्षरित पूर्णांक के रूप में व्याख्या किया जाता है। MCS-48 परिवार के साथ अनुकूलता के लिए 2K वर्तमान पृष्ठ के भीतर शॉर्ट डायरेक्ट एड्रेसिंग Addr11 का एक संस्करण पेश किया गया है।

इन सभी प्रकार के एड्रेसिंग का उपयोग जंप निर्देशों में किया जाता है। कॉल कमांड केवल प्रत्यक्ष Addr16 और इन-पेज Addr11 एड्रेसिंग विधियों का उपयोग करते हैं। सभी कंडिशनल कमांड केवल रिलेटिव एड्रेसिंग का उपयोग करते हैं।

जब माइक्रोकंट्रोलर एक बाधा अनुरोध को पहचानता है, तो यह एक LCALL Addr16 निर्देश जारी करता है, जो स्वचालित रूप से स्टैक पर वापसी पता संग्रहीत करता है। कार्यक्रम की स्थिति की जानकारी (पीएसडब्ल्यू रजिस्टर की सामग्री) स्वचालित रूप से सहेजी नहीं जाती है। जिसमें



संबंधित आलेख: