हेल्लो दोस्तों आज के इस पोस्ट में आपको Addressing modes in 8086 in hindi के बारे में बताया गया है की क्या होता है कैसे काम करता है तो चलिए शुरू करते है
Contents
8086 के एड्रेसिंग मोड
एसेम्बली भाषा प्रोग्राम तकनीकी का अध्ययन करने से पहले यह जानना आवश्यक है कि 8086, किस प्रकार डेटा पर ऑपरेट करता है। 8086 की डेटा पर ऑपरेट करने की अनेक विधियाँ हैं। वे विभिन्न विधियाँ जिनके द्वारा माइक्रोप्रोसेसर डेटा को एक्सेस (access) करता है उसके एड्रैसिंग मोड कहलाते हैं। 8086 के एड्रैसिंग मोड्स निम्न हैं
1. Immediate Addressing Mode
2. Register Addressing Mode
3. Direct Addressing Mode
4. Register Indirect
5. Register Relative
6. Based Indexed
7. Relative Based Indexed
सर्वप्रथम इन्सट्रक्शन MOVdestination, source पर विचार कीजिए। इस इन्सट्रक्शन को एक्जीक्यूट करने पर, एक वर्ड अथवा बाइट किसी दी गयी सोर्स लोकेशन (source location) से, दी गयी डेस्टिनेशन लोकेशन (destination location) में कॉपी होता है। सोर्स को सीधे सीधे इन्सट्रक्शन में लिखा जा सकता है।
यह एक संख्या, या एक रजिस्टर अथवा एक मैमोरी लोकेशन, जिसे 24 विधियों द्वारा प्रदर्शित किया जा सकता है, हो सकती है। डेस्टिर्नेशन भी इसी प्रकार, कोई रजिस्टर अथवा 24 विभिन्न विधियों द्वारा प्रदर्शित की जा सकने वाली मैमोरी लोकेशन्स में से कोई एक, हो सकती है। किसी इन्सट्रक्शन में सोर्स तथा डेस्टिनेशन दोनों, मैमोरी लोकेशन नहीं हो सकते।
Immediate Addressing Mode
माना किसी प्रोग्राम में हमें संख्या 326AH रजिस्टर BX में लोड करनी है। इस कार्य को करने के लिए इन्सटक्शन MOV BX. 326AH प्रयोग की जा सकती है। इस इन्सट्रक्शन को एक्जीक्यूट करने पर immediate हैक्साडेसीमल संख्या 326AH, 16-बिट रजिस्टर BX में कॉपी हो जाती है। यह immediate addressing मोड कहलाता है क्योंकि लोड की जाने वाली संख्या, MOV इन्सट्रक्शन कोड के तुरन्त पश्चात् BX रजिस्टर में दो मैमोरी लोकेशन्स में लोड हो जाती है।
इसे भी पढ़े –
- 8086 block diagram in hindi-8086 ब्लाक डायग्राम हिंदी में
- introduction to microprocessor 8086 in hindi-माइक्रोप्रोसेसर 8086 का परिचय
इसी प्रकार इन्सट्रक्शन MOVBL,37H एक्जीक्यूट करने पर 8-बिट immediate संख्या 8-बिट BL रजिस्टर में लोड हो जाती है। इसी प्रकार 8-बिट संख्या को 8-बिट मैमोरी लोकेशन में लोड करने के लिए इन्सट्रक्शन लिखी जा सकती 16-बिट संख्या दो क्रमागत (consecutive) मैमोरी लोकेशन में लोड की जा सकती है। Immediate addressing के कछ उदाहरण निम्न हैं
डायग्राम
Register Addressing
रजिस्टर एड्रैसिंग का अर्थ है कि इन्सट्रक्शन में ऑपरेन्ड (operand) का सास कोई रजिस्टर, इन्सट्रक्शन MOVCX, AX एक्जीक्यट करने पर 16-बिट रजिस्टर AX के contents, 16-बिट रजिस्टर में ध्यान दें, कि इन्सट्रक्शन में सोर्स से पहले डेस्टिनेशन लोकेशन का विवरण दिया गया है। यह भी समझना आवश्यक के contents, CX में केवल कॉपी होते हैं move नहीं होते। दूसरे शब्दों में, रजिस्टर CX में पहले लोड किये गये। स्थान पर अब रजिस्टर AX के contents कॉपी होते हैं। AX के contents में कोई परिवर्तन नहीं होता।
इसी प्रकार कोई भी 16-बिट रजिस्टर, किसी अन्य 16-बिट रजिस्टर में MOV किया जा सकता है अगर रजिस्टर, किसी अन्य 8-बिट रजिस्टर में MOV किया जा सकता है।
परन्तु हम MOV CX, AL प्रकार की इन्सट्रक्शन प्रयुक्त नहीं कर सकते क्योंकि इस इन्सटक्शन में एक 1-बाइट ऑपरेंड(AL), एक Word-बाइट डेस्टिनेशन (CX) में कॉपी करने का प्रयास किया गया है। यद्यपि AL रजिस्टर का बाइट , CX में लोड किया जा सकता है परन्त 8086 को यह ज्ञात नहीं होगा कि उसे CX के किस अर्धभाग (CL or CH) में रखा है।
यदि यह इन्सट्रक्शन एक उत्तम एसेम्बलर द्वारा दी जाये तब वह इसे type error’ दर्शायेगा। AL से CX के high बाइट (CH) में कापी करने के लिए हमें MOV CH, AL का प्रयोग करना होगा। इसी प्रकार इन्सट्रक्शन MOV CL, AL 1-बाइट ऑपरेन्ड (AL) को CX के low बाइट (CL) में कॉपी करनी है। रजिस्टर एड्रैसिंग के कुछ अन्य उदाहरण निम्न हैं
डायग्राम
रजिस्टर एड्रैसिंग मोड में 16-बिट ऑपरेन्ड के लिए रजिस्टर AX, BX,CX, DX, SI, SP अथवा BP प्रयुक्त किये जा है। रजिस्टर एड्रैसिंग में कोई EA नहीं होता। सकते हैं तथा 8-बिट ऑपरेन्ड के लिए AL, AH, BL, BH, CL, CH, DL अथवा DH में से कोई भी प्रयुक्त किया जा सकता है रजिस्टर एड्रेसिंग में कोई EA नहीं होता
Direct Addressing Mode
मैमोरी को एड्रैस करने की सबसे सरल विधि यह है कि इन्सट्रक्शन में सीधे 8 या 16-बिट effective address (EA) लिख दिया जाये। इसका एक उदाहरण इन्सट्रक्शन MOV CL, [426AH] है। संख्या 426AH के दोनों ओर ब्रेकेट्स brackets) लगाये गये हैं। ब्रेकेट्स के अन्दर लिखी गयी संख्या, सेगमेन्ट बेस से मैमोरी लोकेशन का डिसप्लेसमेन्ट ऑफसेट प्रदर्शित करती है।
एक्जीक्यूट करने पर यह इन्सट्रक्शन, डेटा सेगमेन्ट बेस से 426AH डिसप्लेसमेन्ट पर मैमोरी लोकेशन के contents, CL रजिस्टर में लोड करती है। मैमोरी का फिजीकल (physical) एड्रेस, डेटा सेगमेन्ट बेस (DS) को 4-बिट बाय Het) शिफ्ट कर, शिफ्ट हुई संख्या में, यह डिसप्लेसमेन्ट जोड़ने पर प्राप्त होता है। यह चित्र 10.8 में प्रदर्शित किया गया है।
डायग्राम
यह डायरेक्ट एड्रेसिंग (direct addressing) कहलाता है क्योंकि, सेगमेन्ट बेस से ऑपरेन्ड का डिसप्लेसमेन्ट या और सीधे इन्सट्रक्शन में दिया जाता है। यह डिसप्लेसमेंट इन्सट्रक्शन का EA है। यह डिसप्लेसमेन्ट, डेटा सेगमेन्ट (DS) के साथ जोड़ा जाता है (यदि इन्सट्रक्शन में कोई ‘segment override prefix’ न हो जो इसे किसी अन्य सेगमेन्ट बेस में डने के निर्देश देता है)।
डायरेक्ट एड्रैसिंग मोड का एक अन्य उदाहरण इन्सट्रक्शन MOVCX, [426AH] है। एक्जीक्यूट करने पर यह शन मैमोरी से एक वर्ड रजिस्टर CX में कॉपी करती है। चूँकि 8086 का प्रत्येक मैमोरी एड्रैस एक बाइट स्टोर करता है
वर्ड (Word) दो मैमोरी लोकेशन्स से आयेगा। डेटा सेगमेन्ट बेस से 426AH डिसप्लेसमेन्ट पर स्थित बाइट, रजिस्टर CL * कॉपी होगा। अगले उच्च एड्रेस (next higher address) अर्थात् 426BH से बाइट CH रजिस्टर में कॉपी होगा। 8086 स्वत: किसी दी गयी इन्सट्रक्शन के लिए मैमोरी में बाइट्स की संख्या एक्सैस (access) करता है।
उपरोक्त दोनों उदाहरणों से स्पष्ट है कि डायरेक्ट एडैसिंग मोड, किसी ऑपरेन्ड के सोर्स को दर्शाने के लिए प्रयुक्त किया जा सकता है। इसके द्वारा ऑपरेन्ड का डेस्टिनेशन भी बताया जा सकता है। उदाहरणत: इन्सट्रक्शन MOV [426AH], ला. रजिस्टर CX के contents, डेटा सेगमेन्ट में दो मैमोरी लोकेशन्स पर कॉपी करती है। रजिस्टर CL के contents डिसप्लेसमेन्ट 426AH पर तथा CH के contents, डिसप्लेसमेन्ट 426BH पर मैमोरी लोकेशन में कॉपी होते हैं।
Register Indirect
इस विधि में, इन्सट्रक्शन में दिये गये बेस रजिस्टर BX अथवा किसी इन्डैक्स रजिस्टर में EA (effective address) होता है। अर्थात्
डायग्राम
Register Relative
इस मोड में बेस रजिस्टर अथवा इन्डैक्स रजिस्टर के contents एवं 8 या 16-बिट डिसप्लेसमेन्ट का योग EA होता है। अर्थात्,
डायग्राम
Based Indexed
इस मोड में EA, किसी बेस रजिस्टर तथा एक इन्डैक्स रजिस्टर का योग होता है। ये दोनों इन्सट्रक्शन में दिये जाते हैं। अर्थात्
डायग्राम
Relative Based Indexed
इस मोड में EA, 8-बिट या 16-बिट डिसप्लेसमैन्ट तथा based indexed एड्रैस का योग होता है। अर्थात्,
डायग्राम
उदाहरण के लिये माना,
(BX) =0158H, (DI) = 10A5A, Displacement (Offset) = 1B57H तथा DS-2100 तब डाटा सेगमैन्ट (DS) का सेगमेन्ट रजिस्टर मानकर विभिन्न मोड्स में EA तथा PA इस प्रकार होंगे
Direct :
EA= 1057
Physical address = 21000 + 1B57 = 22357
Register :
No effective address
Register indirect, assuming register BX:
EA=0158
Physical address = 21000 +0158 = 21158
Register relative, assuming register BX :
EA=0158 + 1B57 = 1CAF
Physical address = 21000 + 1CAF = 22CAF
Based indexed, assuming registers BX and DI :
EA=0158 + 10A5 = 11FD
Physical address = 21000 + 11FD = 221FD
Relative based indexed, assuming BX and DI :
EA = 0158 + 10A5 + 1B57 = 2D54
Physical address = 21000 + 2D54 = 23D54
reference-https://www.ic.unicamp.br/~celio/mc404s2-
निवेदन-अगर आपको यह आर्टिकल(Addressing modes in 8086 in hindi) अच्छा लगा हो तो आप इस पोस्ट को अपने दोस्तों के साथ जरुर शेयर(Addressing modes in 8086 in hindi) करे और आपको जिस टॉपिक() पर आपको पढना या नोट्स चाहिए तो हमें जरुर कमेंट(Addressing modes in 8086 in hindi ) करे आपका कमेंट्स हमारे लिए बहु मूल्य है धन्यवाद