Conditional Branching Instructions: JE, JNE, JL, JG, JZ, JNZ

Computer Programming - অ্যাসেম্বলি প্রোগ্রামিং (Assembly Programming) Control Flow এবং Branching (Control Flow and Branching) |
227
227

Assembly Language-এ Conditional Branching Instructions প্রোগ্রামের নিয়ন্ত্রণ প্রবাহ পরিবর্তনের জন্য ব্যবহৃত হয়। এগুলি সাধারণত CPU-এর ফ্ল্যাগ রেজিস্টারের ভিত্তিতে কাজ করে এবং শর্ত পূরণ হলে নির্দিষ্ট ঠিকানায় লাফ দেয়।


JE (Jump if Equal):

  • সংজ্ঞা: JE নির্দেশনা ZF (Zero Flag) সেট থাকলে জাম্প করে, অর্থাৎ যখন দুটি অপারেন্ড সমান হয়।
  • ব্যবহার:

    CMP AX, BX     ; AX এবং BX তুলনা
    JE label       ; যদি AX == BX হয়, তাহলে label এ জাম্প

JNE (Jump if Not Equal):

  • সংজ্ঞা: JNE নির্দেশনা ZF রিসেট (সেট নয়) থাকলে জাম্প করে, অর্থাৎ যখন দুটি অপারেন্ড সমান নয়।
  • ব্যবহার:

    CMP AX, BX     ; AX এবং BX তুলনা
    JNE label      ; যদি AX != BX হয়, তাহলে label এ জাম্প

JL (Jump if Less):

  • সংজ্ঞা: JL নির্দেশনা SF (Sign Flag) এবং OF (Overflow Flag) যাচাই করে জাম্প করে। এটি signed সংখ্যার ক্ষেত্রে ব্যবহৃত হয় যখন প্রথম অপারেন্ড দ্বিতীয় অপারেন্ডের চেয়ে ছোট।
  • ব্যবহার:

    CMP AX, BX     ; AX এবং BX তুলনা
    JL label       ; যদি AX < BX হয় (signed), তাহলে label এ জাম্প

JG (Jump if Greater):

  • সংজ্ঞা: JG নির্দেশনা ZF রিসেট এবং SF ও OF সমান থাকলে জাম্প করে। এটি signed সংখ্যার ক্ষেত্রে ব্যবহৃত হয় যখন প্রথম অপারেন্ড দ্বিতীয় অপারেন্ডের চেয়ে বড়।
  • ব্যবহার:

    CMP AX, BX     ; AX এবং BX তুলনা
    JG label       ; যদি AX > BX হয় (signed), তাহলে label এ জাম্প

JZ (Jump if Zero):

  • সংজ্ঞা: JZ নির্দেশনা ZF (Zero Flag) সেট থাকলে জাম্প করে। এটি সাধারণত অপারেশন বা তুলনার ফলাফল শূন্য হলে ব্যবহৃত হয়। এটি JE নির্দেশনার সমার্থক।
  • ব্যবহার:

    CMP AX, 0      ; AX এবং 0 তুলনা
    JZ label       ; যদি AX == 0 হয়, তাহলে label এ জাম্প

JNZ (Jump if Not Zero):

  • সংজ্ঞা: JNZ নির্দেশনা ZF রিসেট থাকলে জাম্প করে। এটি সাধারণত অপারেশন বা তুলনার ফলাফল শূন্য না হলে ব্যবহৃত হয়। এটি JNE নির্দেশনার সমার্থক।
  • ব্যবহার:

    CMP AX, 0      ; AX এবং 0 তুলনা
    JNZ label      ; যদি AX != 0 হয়, তাহলে label এ জাম্প

উদাহরণ: Conditional Branching ব্যবহার করে Assembly প্রোগ্রাম

section .text
    global _start

_start:
    MOV AX, 10        ; AX রেজিস্টারে 10 লোড
    MOV BX, 5         ; BX রেজিস্টারে 5 লোড
    CMP AX, BX        ; AX এবং BX তুলনা

    JE equal_label    ; যদি AX == BX হয়, তাহলে equal_label এ জাম্প
    JG greater_label  ; যদি AX > BX হয়, তাহলে greater_label এ জাম্প
    JL less_label     ; যদি AX < BX হয়, তাহলে less_label এ জাম্প

equal_label:
    ; এখানে AX এবং BX সমান হলে কার্যকর হবে
    ; কোড ব্লক
    JMP end           ; প্রোগ্রামের শেষ

greater_label:
    ; এখানে AX > BX হলে কার্যকর হবে
    ; কোড ব্লক
    JMP end           ; প্রোগ্রামের শেষ

less_label:
    ; এখানে AX < BX হলে কার্যকর হবে
    ; কোড ব্লক
    JMP end           ; প্রোগ্রামের শেষ

end:
    ; প্রোগ্রাম শেষ

সারসংক্ষেপ

JE, JNE, JL, JG, JZ, এবং JNZ নির্দেশনাগুলি Assembly Language-এ শর্তমূলক ব্রাঞ্চিং নিশ্চিত করতে ব্যবহৃত হয়। এগুলি প্রোগ্রামের নিয়ন্ত্রণ প্রবাহ পরিবর্তন করে এবং CPU-এর ফ্ল্যাগ রেজিস্টারের ভিত্তিতে কাজ করে। JE এবং JZ সাধারণত সমতুল্য, এবং JNE এবং JNZ একে অপরের সমার্থক। এগুলি প্রোগ্রামের কার্যপ্রণালীতে শর্তমূলক সিদ্ধান্ত গ্রহণে গুরুত্বপূর্ণ ভূমিকা পালন করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion