Parameter Passing এবং Local Variable Management

Computer Programming - অ্যাসেম্বলি প্রোগ্রামিং (Assembly Programming) Procedures এবং Functions (Procedures and Functions in Assembly) |
272
272

Assembly Language প্রোগ্রামিংয়ে Parameter Passing এবং Local Variable Management স্ট্যাক ব্যবহার করে ফাংশনের মধ্যে ডেটা স্থানান্তর এবং লোকাল ভেরিয়েবল সংরক্ষণের পদ্ধতি নির্দেশ করে। স্ট্যাক ফ্রেম এই উদ্দেশ্যে ব্যবহৃত হয়, যেখানে ফাংশনের প্যারামিটার এবং লোকাল ভেরিয়েবল সংরক্ষিত থাকে।


Parameter Passing (প্যারামিটার পাসিং):
ফাংশন কলের সময় প্যারামিটার পাস করার জন্য স্ট্যাক ব্যবহৃত হয়। প্যারামিটার পাসিং-এর সাধারণ পদ্ধতিগুলি নিম্নরূপ:

  • স্ট্যাকের মাধ্যমে প্যারামিটার পাসিং:

    • ফাংশন কলের আগে প্যারামিটারগুলি স্ট্যাকে PUSH করা হয়।
    • ফাংশনের মধ্যে, প্যারামিটারগুলি BP বা SP রেজিস্টারের মাধ্যমে অ্যাক্সেস করা হয়।
    • ফাংশন শেষে স্ট্যাক পরিষ্কার করা হয়।

    উদাহরণ:

    ; ফাংশন কলের আগে প্যারামিটার পাস করা
    MOV AX, 5
    PUSH AX         ; প্রথম প্যারামিটার হিসেবে ৫ পুশ করা
    CALL myFunction ; ফাংশন কল করা
    
    myFunction:
        PUSH BP     ; পুরোনো BP সংরক্ষণ করা
        MOV BP, SP  ; নতুন ফ্রেম পয়েন্টার সেট করা
        ; প্যারামিটার অ্যাক্সেস (BP + 4) দিয়ে প্যারামিটার অ্যাক্সেস করা যায়
        MOV AX, [BP + 4] ; প্রথম প্যারামিটার লোড করা
        ; ফাংশনের বডি
        POP BP      ; পুরোনো BP পুনরুদ্ধার করা
        RET

Local Variable Management (লোকাল ভেরিয়েবল ব্যবস্থাপনা):
ফাংশনের লোকাল ভেরিয়েবলগুলো স্ট্যাক ফ্রেমের মধ্যে সংরক্ষিত থাকে। ফাংশন শুরুতে SP-এর মান কমিয়ে লোকাল ভেরিয়েবলগুলির জন্য স্থান তৈরি করা হয়।

  • স্ট্যাক ফ্রেম তৈরি:
    • ফাংশনের শুরুতে BP রেজিস্টার ব্যবহার করে স্ট্যাক ফ্রেম তৈরি করা হয়।
    • SP রেজিস্টার ব্যবহার করে লোকাল ভেরিয়েবলগুলির জন্য স্থান তৈরি করা হয়।
  • লোকাল ভেরিয়েবল অ্যাক্সেস:

    • লোকাল ভেরিয়েবল BP রেজিস্টারের মানের সাথে নির্দিষ্ট অফসেট ব্যবহার করে অ্যাক্সেস করা হয়।

    উদাহরণ:

    myFunction:
        PUSH BP         ; পূর্বের BP সংরক্ষণ করা
        MOV BP, SP      ; নতুন ফ্রেম পয়েন্টার সেট করা
        SUB SP, 4       ; লোকাল ভেরিয়েবলের জন্য ৪ বাইট সংরক্ষণ
        
        ; লোকাল ভেরিয়েবল ব্যবহার (BP - 4) দিয়ে লোকাল ভেরিয়েবল অ্যাক্সেস করা যায়
        MOV [BP - 4], AX ; লোকাল ভেরিয়েবল সংরক্ষণ
        
        ; ফাংশনের বডি
        
        MOV SP, BP      ; স্ট্যাক পয়েন্টার পুনরুদ্ধার
        POP BP          ; পূর্বের BP পুনরুদ্ধার করা
        RET

Parameter Passing এবং Local Variable Management এর প্রক্রিয়া:

  1. ফাংশন কলের আগে প্যারামিটার পাসিং: প্যারামিটার স্ট্যাকে PUSH করা হয়।
  2. ফ্রেম সেটআপ: ফাংশন শুরুর সময় BP সংরক্ষণ এবং সেট করা হয়।
  3. লোকাল ভেরিয়েবল সংরক্ষণ: SP-এর মান কমিয়ে লোকাল ভেরিয়েবলের জন্য স্থান তৈরি করা হয়।
  4. ফাংশন শেষে স্ট্যাক পরিষ্কার: SP এবং BP এর পূর্বের মান পুনরুদ্ধার করা হয় এবং RET নির্দেশনা দিয়ে ফাংশন শেষ হয়।

সারসংক্ষেপ

Parameter Passing এবং Local Variable Management ফাংশনের কার্যপ্রণালী এবং ডেটা সংরক্ষণের জন্য Assembly Language-এ স্ট্যাক ব্যবহার করে। প্যারামিটার পাসিং-এর জন্য স্ট্যাকে PUSH এবং POP ব্যবহার করা হয়, এবং লোকাল ভেরিয়েবল ব্যবস্থাপনার জন্য BP এবং SP রেজিস্টারের মাধ্যমে স্ট্যাক ফ্রেম তৈরি করা হয়। এই প্রক্রিয়াগুলি ফাংশন কল এবং রিটার্নের সময় সঠিক ডেটা অ্যাক্সেস এবং ব্যবস্থাপনা নিশ্চিত করে।

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

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

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

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