स्पष्टीकरण के साथ सरल 8086 विधानसभा भाषा कार्यक्रम

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





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

असेंबली लेवल प्रोग्रामिंग 8086

असेंबली लेवल प्रोग्रामिंग 8086



असेंबली लेवल प्रोग्रामिंग 8086

विधानसभा प्रोग्रामिंग भाषा एक निम्न-स्तरीय भाषा है, जिसे mnemonics का उपयोग करके विकसित किया गया है। माइक्रोकंट्रोलर या माइक्रोप्रोसेसर केवल 0 या 1 की तरह ही द्विआधारी भाषा को समझ सकते हैं इसलिए असेंबलर असेंबली भाषा को बाइनरी भाषा में परिवर्तित करता है और कार्यों को करने के लिए मेमोरी को स्टोर करता है। प्रोग्राम लिखने से पहले एम्बेडेड डिजाइनरों को नियंत्रक या प्रोसेसर के विशेष हार्डवेयर पर पर्याप्त ज्ञान होना चाहिए, इसलिए पहले हमें 8086 प्रोसेसर के हार्डवेयर को जानना आवश्यक है।


प्रोसेसर का हार्डवेयर

प्रोसेसर का हार्डवेयर



8086 प्रोसेसर आर्किटेक्चर

8086 एक ऐसा प्रोसेसर है जो सभी परिधीय उपकरणों जैसे कि धारावाहिक बस, और RAM और ROM, I / O उपकरणों के लिए प्रतिनिधित्व किया जाता है और जिस पर सिस्टम बस का उपयोग करके सभी बाहरी रूप से CPU से जुड़े होते हैं। 8086 माइक्रोप्रोसेसर है CISC आधारित वास्तुकला , और इसमें 32 I / O जैसे परिधीय पदार्थ हैं, धारावाहिक संचार , यादें और यादें काउंटर / टाइमर । माइक्रोप्रोसेसर को उन कार्यों को करने के लिए एक प्रोग्राम की आवश्यकता होती है जो कार्यों को पढ़ने और सहेजने के लिए मेमोरी की आवश्यकता होती है।

8086 प्रोसेसर आर्किटेक्चर

8086 प्रोसेसर आर्किटेक्चर

विधानसभा स्तर प्रोग्रामिंग 8086 मेमोरी रजिस्टरों पर आधारित है। A रजिस्टर मुख्य हिस्सा है माइक्रोप्रोसेसर और नियंत्रक जो मेमोरी में स्थित होते हैं जो डेटा को इकट्ठा करने और संग्रहीत करने का एक तेज़ तरीका प्रदान करते हैं। यदि हम किसी प्रोसेसर या कंट्रोलर को गुणा, जोड़ आदि के द्वारा डेटा में हेरफेर करना चाहते हैं, तो हम सीधे उस मेमोरी में नहीं कर सकते हैं जहाँ डेटा को प्रोसेस करने और स्टोर करने के लिए रजिस्टर की आवश्यकता होती है। 8086 माइक्रोप्रोसेसर में विभिन्न प्रकार के रजिस्टर होते हैं जिन्हें उनके निर्देशों के अनुसार वर्गीकृत किया जा सकता है जैसे कि

सामान्य प्रयोजन रजिस्टर : 8086 सीपीयू में 8-सामान्य उद्देश्य रजिस्टर शामिल हैं और प्रत्येक रजिस्टर का अपना नाम है जैसे कि एक्सएक्स, बीएक्स, सीएक्स, डीएक्स, एसआई, डीआई, बीपी, एसपी। ये सभी 16-बिट रजिस्टर हैं जहां चार रजिस्टर को दो भागों में विभाजित किया जाता है जैसे कि AX, BX, CX, और DX जो मुख्य रूप से संख्याओं को रखने के लिए उपयोग किया जाता है।

विशेष प्रयोजन रजिस्टर : 8086 सीपीयू में 2- विशेष फ़ंक्शन रजिस्टर शामिल हैं जैसे कि आईपी और फ्लैग रजिस्टर। आईपी ​​रजिस्टर वर्तमान निष्पादन निर्देश को इंगित करता है और हमेशा सीएस खंड रजिस्टर के साथ इकट्ठा करने के लिए काम करता है। फ्लैग रजिस्टरों का मुख्य कार्य यांत्रिक कार्यों के पूरा होने के बाद सीपीयू संचालन को संशोधित करना है और हम सीधे पहुंच नहीं सकते हैं
सेगमेंट रजिस्टर: 8086 सीपीयू में सीएस, डीएस, ईएस, एसएस जैसे 4- सेगमेंट रजिस्टर शामिल हैं, जो मुख्य रूप से सेगमेंट रजिस्टरों में किसी भी डेटा को स्टोर करने के लिए संभव है और हम सेगमेंट रजिस्टरों का उपयोग करके मेमोरी के एक ब्लॉक तक पहुंच सकते हैं।


सरल विधानसभा भाषा कार्यक्रम 8086

असेम्बली लैंग्वेज प्रोग्रामिंग 8086 में कुछ नियम हैं जैसे कि

  • विधानसभा स्तर प्रोग्रामिंग 8086 कोड ऊपरी अक्षरों में लिखा जाना चाहिए
  • लेबल को एक कोलन द्वारा अनुसरण किया जाना चाहिए, उदाहरण के लिए: लेबल:
  • सभी लेबल और प्रतीकों को एक पत्र के साथ शुरू होना चाहिए
  • सभी टिप्पणियाँ निचले मामले में टाइप की जाती हैं
  • कार्यक्रम की अंतिम पंक्ति अंत निर्देश के साथ समाप्त होनी चाहिए

8086 प्रोसेसर के पास डेटा को एक्सेस करने के लिए दो अन्य निर्देश हैं, जैसे शब्द (दो बाइट्स) के लिए, वर्ड बाइट के लिए - बाइट पीटीआर - बाइट के लिए।

ओप-कोड और ऑपरेंड

ओप-कोड और ऑपरेंड

सेशन कोड: एक एकल निर्देश को एक ऑप-कोड कहा जाता है जिसे सीपीयू द्वारा निष्पादित किया जा सकता है। यहाँ 'MOV' निर्देश को ऑप-कोड कहा जाता है।

संचालन: एक एकल टुकड़ा डेटा को ऑपरेंड कहा जाता है जिसे ऑप-कोड द्वारा संचालित किया जा सकता है। उदाहरण, घटाव ऑपरेशन ऑपरेंड द्वारा घटाए गए ऑपरेंड द्वारा किया जाता है।
वाक्य - विन्यास: एसयूबी बी, सी

8086 माइक्रोप्रोसेसर विधानसभा भाषा कार्यक्रम

कीबोर्ड से एक चरित्र को पढ़ने के लिए एक कार्यक्रम लिखें

MOV आह, 1h // कीबोर्ड इनपुट सबप्रोग्राम
INT 21h // चरित्र इनपुट
// चरित्र को अल में संग्रहीत किया जाता है
MOV c, alto c से अल // कॉपी कैरेक्टर

एक चरित्र को पढ़ने और प्रदर्शित करने के लिए एक कार्यक्रम लिखें

MOV आह, 1h // कीबोर्ड इनपुट सबप्रोग्राम
INT 21h // चरित्र को अल में पढ़ें
MOV dl, अल // प्रतिलिपि चरित्र dl करने के लिए
MOV आह, 2h // चरित्र उत्पादन उपप्रोग्राम
INT 21h // डीएल में चरित्र प्रदर्शित करें

सामान्य प्रयोजन रजिस्टरों का उपयोग करके एक कार्यक्रम लिखें

ओआरजी 100 ह
MOV AL, VAR1 // VAR1 की जाँच मूल्य को AL में ले जाकर।
LEA BX, VAR1 // BX में VAR1 का पता प्राप्त करें।
MOV BYTE PTR [BX], 44h // VAR1 की सामग्री को संशोधित करें।
MOV AL, VAR1 // VAR1 की जाँच मूल्य को AL में ले जाकर।
सही
VAR1 DB 22h
समाप्त

लाइब्रेरी फ़ंक्शंस का उपयोग करते हुए स्ट्रिंग प्रदर्शित करने के लिए एक प्रोग्राम लिखें

emu8086.inc // मैक्रो घोषणा शामिल करें
ओआरजी 100 ह
प्रिंट INT हैलो वर्ल्ड! '
गोटोसी 10, 5
PUTC 65 // 65 - 'A' के लिए एक ASCII कोड है
PUTC UT B ’
आरईटी // ऑपरेटिंग सिस्टम पर वापस लौटें।
अंत // संकलक को रोकने का निर्देश।

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

अंकगणित और तर्क इकाई की 8086 प्रक्रियाएं तीन समूहों में विभाजित हो गई हैं जैसे कि जोड़, विभाजन और वेतन वृद्धि। अधिकांश अंकगणित और तर्क निर्देश प्रोसेसर की स्थिति रजिस्टर को प्रभावित करते हैं।

असेंबली भाषा प्रोग्रामिंग 8086 mnemonics ऑप-कोड के रूप में हैं, जैसे कि MOV, MUL, JMP और इसी तरह, जो ऑपरेशन करने के लिए उपयोग किए जाते हैं। विधानसभा भाषा प्रोग्रामिंग 8086 उदाहरण

इसके अलावा
ORG0000h
MOV DX, # 07H // मान को रजिस्टर AX में ले जाएं //
MOV AX, # 09H // मान को 9 पर ले जाएँ संचायक AX //
AX जोड़ें, 00H // R0 मान के साथ CX मान जोड़ें और AX // में परिणाम संग्रहीत करें
समाप्त
गुणा
ORG0000h
MOV DX, # 04H // रजिस्टर DX के लिए मान 4 ले जाएँ //
MOV AX, # 08H // मान को 8 पर ले जाएँ संचायक AX //
MUL AX, 06H // गुणा परिणाम Accumulator AX // में संग्रहीत किया जाता है
समाप्त
घटाव
ओआरजी 0000h
MOV DX, # 02H // DX 2 रजिस्टर करने के लिए मान 2 स्थानांतरित करें।
MOV AX, # 08H // मान को 8 पर ले जाएँ संचायक AX //
SUBB AX, 09H // परिणाम मान Accumulator A X // में संग्रहीत किया जाता है
समाप्त
विभाजन
ओआरजी 0000h
MOV DX, # 08H // DX 3 रजिस्टर करने के लिए मान 3 स्थानांतरित करें
MOV AX, # 19H // मान को 5 पर ले जाएँ संचायक AX //
DIV AX, 08H // अंतिम मान Accumulator AX // में संग्रहीत है
समाप्त

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