ইনডেক্সড এবং বেস রেজিস্টার অ্যাড্রেসিং মোড (Indexed and Base Register Addressing Modes)
কম্পিউটার আর্কিটেকচারে, অ্যাড্রেসিং মোড হলো সিপিইউ-এর মধ্যে ডাটা বা ইনস্ট্রাকশন খোঁজার একটি পদ্ধতি। এটি নির্ধারণ করে যে একটি ইনস্ট্রাকশন অপারেশন কোন মেমোরি লোকেশন বা রেজিস্টারের সাথে কাজ করবে। দুটি সাধারণ অ্যাড্রেসিং মোড হল ইনডেক্সড অ্যাড্রেসিং এবং বেস রেজিস্টার অ্যাড্রেসিং, যা সাধারণত মেমোরি অ্যাক্সেসের জন্য ব্যবহৃত হয়। নিচে এগুলোর বিস্তারিত আলোচনা করা হলো:
১. ইনডেক্সড অ্যাড্রেসিং মোড (Indexed Addressing Mode)
ইনডেক্সড অ্যাড্রেসিং মোডে, একটি নির্দিষ্ট বেস ঠিকানায় একটি ইন্ডেক্স (অথবা অ্যাড্রেস অফসেট) যোগ করা হয়, যাতে শেষের মেমোরি লোকেশনটি নির্ধারিত হয়। এই মোডটি সাধারণত অ্যারে বা টেবিলের মতো ডাটা স্ট্রাকচারে ব্যবহৃত হয়, যেখানে একটি নির্দিষ্ট এলিমেন্ট অ্যাক্সেস করতে ইন্ডেক্স ব্যবহার করা হয়।
ইনডেক্সড অ্যাড্রেসিং মোডের বৈশিষ্ট্য:
- বেস ঠিকানা এবং ইন্ডেক্স যোগ করা: এখানে দুটি উপাদান থাকে - বেস অ্যাড্রেস এবং একটি ইন্ডেক্স। বেস অ্যাড্রেস সাধারণত স্টোরেজ বা অ্যারে বা ডাটা স্ট্রাকচারের প্রথম স্থানের প্রতিনিধিত্ব করে এবং ইন্ডেক্সটি এলিমেন্টের অবস্থান নির্দেশ করে।
- অ্যারে/টেবিলের ক্ষেত্রে ব্যবহৃত: যখন ডাটা একাধিক স্থানে সংরক্ষিত থাকে, তখন ইনডেক্সড অ্যাড্রেসিং মোড ব্যবহৃত হয়।
- অফসেট যোগ করা: ইনডেক্স বা অফসেট বেস ঠিকানায় যোগ করা হয়, এবং এই যোগফলই নির্দিষ্ট মেমোরি লোকেশন নির্দেশ করে।
উদাহরণ:
ধরা যাক, একটি অ্যারে A[10] আছে, যেখানে প্রথম উপাদান A[0] এর ঠিকানা ১০০০ (বেস অ্যাড্রেস) এবং ইন্ডেক্স ৪ (অথবা ৪তম উপাদান) অ্যাক্সেস করতে চাই:
- বেস ঠিকানা: ১০০০
- ইন্ডেক্স (অফসেট): ৪
- মেমোরি ঠিকানা: ১০০০ + (৪ * সাইজ) = ১০০০ + ৪ = ১০০৪
এখানে, আমরা ১০০৪ ঠিকানা থেকে ডাটা অ্যাক্সেস করছি।
২. বেস রেজিস্টার অ্যাড্রেসিং মোড (Base Register Addressing Mode)
বেস রেজিস্টার অ্যাড্রেসিং মোডে, একটি বেস রেজিস্টারে সংরক্ষিত অ্যাড্রেসের উপর একটি অফসেট যোগ করা হয়, যাতে একটি নির্দিষ্ট মেমোরি লোকেশন অ্যাক্সেস করা যায়। এটি সাধারণত ডাটা স্ট্রাকচারের প্রথম ঠিকানা বা স্ট্যাকের শুরু অবস্থান হিসেবে ব্যবহৃত হয়, যেখানে প্রতিটি ইনস্ট্রাকশন বা ডাটা অফসেট যোগ করে অ্যাক্সেস করা হয়।
বেস রেজিস্টার অ্যাড্রেসিং মোডের বৈশিষ্ট্য:
- বেস রেজিস্টার: একটি রেজিস্টার বেস অ্যাড্রেস ধারণ করে এবং এই অ্যাড্রেসের সাথে অ্যাড্রেসিং করার জন্য একটি অফসেট বা ইন্ডেক্স যোগ করা হয়।
- স্ট্যাক, ডাটা স্ট্রাকচার বা কোড সেগমেন্টে ব্যবহৃত: এটি স্ট্যাক অ্যাক্সেস বা অন্যান্য সিস্টেম স্তরের কাজের জন্য উপযুক্ত, যেখানে অ্যাড্রেসগুলি মেমোরি সেগমেন্টে স্থানান্তরিত হয়।
- ডায়নামিক মেমোরি অ্যাক্সেস: মেমোরি লোকেশনগুলির অ্যাক্সেস প্রক্রিয়া ডায়নামিক হতে পারে, অর্থাৎ, বেস রেজিস্টারের মান পরিবর্তন হলে মেমোরি অ্যাড্রেসও পরিবর্তিত হতে পারে।
উদাহরণ:
ধরা যাক, একটি বেস রেজিস্টারে 1000 (বেস অ্যাড্রেস) আছে এবং আমরা একটি অফসেট 200 যোগ করতে চাই:
- বেস রেজিস্টার: ১০০০
- অফসেট: ২০০
- মেমোরি ঠিকানা: ১০০০ + ২০০ = ১২০০
এখানে, ১২০০ ঠিকানা থেকে ডাটা অ্যাক্সেস করা হচ্ছে।
ইনডেক্সড অ্যাড্রেসিং এবং বেস রেজিস্টার অ্যাড্রেসিং এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | ইনডেক্সড অ্যাড্রেসিং মোড | বেস রেজিস্টার অ্যাড্রেসিং মোড |
|---|---|---|
| অ্যাড্রেসিং পদ্ধতি | বেস অ্যাড্রেসে ইন্ডেক্স বা অফসেট যোগ করা হয় | বেস রেজিস্টার এবং একটি অফসেট যোগ করে অ্যাড্রেস নির্ধারণ |
| ব্যবহার | সাধারণত অ্যারে বা টেবিলের জন্য ব্যবহৃত | সাধারণত স্ট্যাক বা ডাটা সেগমেন্টে ব্যবহৃত |
| ইন্ডেক্স/অফসেট | ইন্ডেক্স বা অফসেটটি ডাটা বা ইনস্ট্রাকশন অ্যাক্সেসে ব্যবহৃত হয় | অফসেটটি বেস রেজিস্টারের সাথে যোগ করা হয় |
| সামঞ্জস্য | বেশি নমনীয়, কারণ এটি অ্যারে বা টেবিলের জন্য আদর্শ | সাধারণত স্ট্যাটিক অ্যাড্রেসিংয়ের জন্য ব্যবহৃত |
সারসংক্ষেপ
- ইনডেক্সড অ্যাড্রেসিং মোড সাধারণত অ্যারে বা ডাটা টেবিল অ্যাক্সেস করার জন্য ব্যবহৃত হয় যেখানে একটি বেস অ্যাড্রেসে ইন্ডেক্স বা অফসেট যোগ করা হয়।
- বেস রেজিস্টার অ্যাড্রেসিং মোড সাধারণত স্ট্যাক বা ডাটা সেগমেন্ট অ্যাক্সেসের জন্য ব্যবহৃত হয়, যেখানে একটি বেস রেজিস্টার এবং অফসেট যোগ করে মেমোরি অ্যাড্রেস তৈরি করা হয়।
Read more