Branch instructions, वे instructions होती हैं, जो प्रोग्राम के control को एक memory address से दूसरी memory address पर transfer करती है. उदाहरण के लिए, नीचे लिखे गए प्रोग्राम को देखें,
MVI A, 85H
ADI 63H
JUMP Loop 1
Loop 2: STA 2005
HLT
Loop 1: MOV B, A
DCR B
JZ Loop 2
जब माइक्रोप्रोसेसर JUMP instruction पर पहुंचेगा, तो वह loop 1 पर जायेगा। Loop 1 में लिखे code को run करता है।
Loop 1 तब तक चलेगा, जब तक register B का content ‘0’ नहीं हो जाता। जब वह ‘0’ हो जायेगा, program counter Loop 2 पर आ जायेगा।
Branch Instructions तीन प्रकार की होती है,
(1) JUMP Instruction
(2) CALL Instruction
(3) RETURN Instruction
JUMP, CALL और RETURN इंस्ट्रक्शंस को दोबारा दो भागो में विभाजित किया गया है, Conditional और Unconditional Instruction.
Branch Instructions को समझने से पहले जरूरी है की आपको जानकारी हो की Flag Register क्या होते हैं और कैसे काम करता है. माइक्रोप्रोसेसर 8085 में stack pointer और program counter कैसे काम करता है.
यदि आपको इन चीज़ों के बारे में जानकारी नहीं है, तो branch instructions को समझना आपके लिए थोड़ा कठिन हो सकता है.
- 8085 Microprocessor में Interrupt क्या है? (What is Interrupt in Hindi?)
- एड्रेसिंग मोड क्या है और यह कितने प्रकार के होते हैं?
Table of Contents
What is Unconditional Branch Instruction?
यह वे इंस्ट्रक्शन होती हैं, जिनमे Program का कण्ट्रोल specified मेमोरी एड्रेस पर transfer हो जाता है. यह इंस्ट्रक्शंस Flag-register के status flags पर depend नहीं करती है.
Conditional Instructions
यह वे इंस्ट्रक्शंस होती हैं, जो flag-register के flag status पर depend करती है. हम पढ़ चुके हैं की Flag register में 5 status flag होते हैं- Zero flag, Carry flag, Parity flag, Sign flag और Auxiliary Carry flag.
Auxiliary carry flag को छोड़कर सभी branch instructions, flag register के flag status पर निर्भर करती है. जैसे-
JZ address (जब प्राप्त result zero होता है, तो flag-register में zero flag set ‘1’ होगा। और प्रोग्राम का कण्ट्रोल specified address पर चला जायेगा।)
Unconditional JUMP Instruction in 8085
JMP Address
प्रोग्राम का कण्ट्रोल specified address पर jump हो जायेगा। उदाहरण के लिए,
ऊपर दिए गए चित्र के अनुसार, Main program में लिखी गई JUMP instruction के आगे address (२०16)लिखा है. जब यह instruction execute होगी, तो प्रोग्राम specified address (2016) पर चला जाता है.
2016 Address पर subroutine program लिखा हुआ है. अब वह execute हो जायेगा।
Conditional JUMP Instruction
प्रोग्राम का कण्ट्रोल specified address पर तब जायेगा, जब condition true होगी।
(1) JZ Address
यदि प्राप्त result, zero है, तो zero status flag ‘1’ set होगा। प्रोग्राम का कण्ट्रोल specified एड्रेस पर चला जायेगा।
(2) JNZ Address
यह specified एड्रेस पर तब JUMP करेगा, जब result zero नहीं होगा।
(3) JC Address
Arithmetic और logical operations perform करने के बाद, यदि carry generate होता है, तो प्रोग्राम कण्ट्रोल, specified address पर JUMP करेगा।
(4) JNC Address
यदि result में carry generate नहीं होता है, तो carry status flag ‘0’ पर set होगा। और प्रोग्राम कण्ट्रोल specified address पर JUMP कर जायेगा।
(5) JP Address
प्रोग्राम specified एड्रेस पर तब JUMP करेगा, जब result plus (positive) प्राप्त होगा।
(6) JM Address
यदि प्राप्त result minus है, तो program specified address पर JUMP करेगा।
(7) JPE Address
Arithmetic और logical operation perform करने के बाद, प्राप्त result में यदि ‘1’ की गिनती even है, तो program memory address पर JUMP कर जायेगा।
(8) JPO Address
यदि प्राप्त result में ‘1’ की गिनती odd है, तो प्रोग्राम मेमोरी एड्रेस पर JUMP कर जायेगा।
- What is Logic Gates in Hindi?
- What is Binary Number System in Hindi?
- What is Decimal Number System in Hindi?
- What is Half Adder and Full Adder in Hindi?
Unconditional CALL Instruction in 8085
इस इंस्ट्रक्शन का प्रयोग Subroutine प्रोग्राम को CALL करने के लिए किया जाता है. प्रोग्राम का कण्ट्रोल subroutine पर जाने से पहले, main program की अगली instruction का एड्रेस stack में save हो जाता है. उदाहरण के लिए,
ऊपर दिए गये चित्र के according, जब आपका Main Program program counter के CALL 2016 Instruction पर पहुंचेगा, तब program counter 2016 location पर चला जायेगा।
2016 Memory Address पर लिखा हुआ, Subroutine Program execute होगा. Subroutine Program के Execute होने के बाद, program counter वापस से Main Program पर चला जायेगा।
Conditional CALL Instruction
(1) CC Address
यदि carry status flag ‘1’ है, तो यह इंस्ट्रक्शन execute होगी।
(2) CNC Address
अगर, Carry Status Flag ‘0’ है, तो प्रोग्राम का control, specified address पर लिखे subroutine program पर चला जायेगा।
(3) CZ Address
यदि zero flag ‘1’ है, तो यह इंस्ट्रक्शन execute होगी और subroutine program को CALL करेगी।
(4) CNZ Address
अगर, zero flag status ‘0’ है, तो यह subroutine program पर jump करेगा।
(5) CP Address
अगर, sign flag status ‘1’ है, तो प्रोग्राम कण्ट्रोल specified address पर जायेगा।
(6) CM Address
Subroutine program को CALL करेगा, यदि sign flag status ‘0’ है.
(7) CPE Address
यदि parity flag ‘1’ है, तो यह subroutine प्रोग्राम को CALL करेगा।
(8) CPO Address
यदि parity flag ‘0’ है, तो यह subroutine प्रोग्राम को CALL करेगा।
Unconditional RETURN Instruction
RET Address
यह इंस्ट्रक्शन subroutine program केआखिर में लिखी जाती है. Subroutine program पर जाने से पहले, Main प्रोग्राम की अगली इंस्ट्रक्शन का Address, stack में save हो जाता है.
जब return इंस्ट्रक्शन execute होती है, तो stack में save, main प्रोग्राम के अगली इंट्रक्शन का address, program counter में चला जाता है.
Return instruction के execute होने के बाद, प्रोग्राम का कण्ट्रोल Subroutine program से Main-program में लिखे JUMP/CALL इंस्ट्रक्शन के अगली इंस्ट्रक्शन पर वापस आ जाता है.
Conditional RETURN Instruction
RC: यह इंस्ट्रक्शन तब execute होती, जब Carry Flag ‘1’ होता है।
RNC: Return ऑपरेशन तब perform होता, जब Carry flag ‘0’ होता है।
RZ: यदि zero flag ‘1’ है, तो return इंस्ट्रक्शन execute होती है, वरना, उसी प्रोग्राम में लिखी हुई, अगली इंस्ट्रक्शन execute होती है।
RNZ: अगर zero flag ‘0’ है, तो return instruction execute होती है, और प्रोग्राम का control, subroutine प्रोग्राम से main program में चला जायेगा।
RP: यदि sign flag ‘1’ है, तो return इंस्ट्रक्शन execute होती है।
RM: अगर, sign flag ‘0’ है, तो return instruction execute होती है।
RPE: Arithmetic और logical operations perform होने के बाद प्राप्त रिजल्ट में ‘1’ even बार आया है, तो parity flag status 1 set होता है। यदि Flag status ‘1’ है, तो return instruction execute होती है।
RPO: यदि Parity flag status ‘0’ है, तो यह इंस्ट्रक्शन execute होती है।
PCHL Instruction in 8085 Microprocessor
PCHL
यह इंस्ट्रक्शन Register-pair H-L के content/data को program counter में copy करती है. Register-H का content/data, program-counter के higher 8-bit address पर और Register-L का content/data, program counter के lower 8-bit address पर transfer होता है.
आशा है की इस आर्टिकल में आपको Branch Instructions जैसे- RC, RNC, JMP, CALL आदि instructions पढ़ने और समझने को मिली होंगी। यदि आपका इनसे जुड़ा कोई प्रश्न है, तो आप हमें comment box में पूछ सकते हैं.