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 এর প্রক্রিয়া:
PUSH
করা হয়।BP
সংরক্ষণ এবং সেট করা হয়।SP
-এর মান কমিয়ে লোকাল ভেরিয়েবলের জন্য স্থান তৈরি করা হয়।SP
এবং BP
এর পূর্বের মান পুনরুদ্ধার করা হয় এবং RET
নির্দেশনা দিয়ে ফাংশন শেষ হয়।সারসংক্ষেপ
Parameter Passing এবং Local Variable Management ফাংশনের কার্যপ্রণালী এবং ডেটা সংরক্ষণের জন্য Assembly Language-এ স্ট্যাক ব্যবহার করে। প্যারামিটার পাসিং-এর জন্য স্ট্যাকে PUSH
এবং POP
ব্যবহার করা হয়, এবং লোকাল ভেরিয়েবল ব্যবস্থাপনার জন্য BP
এবং SP
রেজিস্টারের মাধ্যমে স্ট্যাক ফ্রেম তৈরি করা হয়। এই প্রক্রিয়াগুলি ফাংশন কল এবং রিটার্নের সময় সঠিক ডেটা অ্যাক্সেস এবং ব্যবস্থাপনা নিশ্চিত করে।
common.read_more