Branch Instructions क्या है,और कितने प्रकार की होती हैं? | What is a Branch Instruction?

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.

What is branch instruction
Categorization of Branch Instruction in 8085 Microprocessor

Branch Instructions को समझने से पहले जरूरी है की आपको जानकारी हो की Flag Register क्या होते हैं और कैसे काम करता है. माइक्रोप्रोसेसर 8085 में stack pointer और program counter कैसे काम करता है.

यदि आपको इन चीज़ों के बारे में जानकारी नहीं है, तो branch instructions को समझना आपके लिए थोड़ा कठिन हो सकता है.



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 हो जायेगा। उदाहरण के लिए,

What is Branch Instruction

ऊपर दिए गए चित्र के अनुसार, 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 कर जायेगा।

Unconditional CALL Instruction in 8085

इस इंस्ट्रक्शन का प्रयोग Subroutine प्रोग्राम को CALL करने के लिए किया जाता है. प्रोग्राम का कण्ट्रोल subroutine पर जाने से पहले, main program की अगली instruction का एड्रेस stack में save हो जाता है. उदाहरण के लिए,

What is Branch Instruction

ऊपर दिए गये चित्र के 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 हो जाता है.

What is Branch instruction

जब 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 में पूछ सकते हैं.

Leave a Comment