সিপিইউর স্ট্যাক সমর্থন করার অর্থ কী?


11

কীভাবে একটি সিপিইউ স্ট্যাক সমর্থন করতে পারে না? সাবউরটাইন ব্যবহার করে এমন কোনও আর্কিটেকচার (আমি দৃ pretty়ভাবে নিশ্চিত যে সমস্ত আর্কিটেকচার) তার পিছনের ঠিকানাটি স্ট্যাকের উপরে ঠেলাতে হবে না যেখানে এটি সাব্রুটিন বলে যেখানে ফিরে যেতে পারে? স্ট্যাকের অর্থ কেবল পয়েন্টার সহ মেমরির একটি অংশ যা একটি নির্দিষ্ট দিকে বেড়ে যায় এবং স্ট্যাকের ডেটা স্ট্রাকচার নং হিসাবে কাজ করে? আমি কেবল বুঝতে পারি না যে কোনও আর্কিটেকচার কীভাবে কোনও স্ট্যাককে সমর্থন করতে পারে না।

কমপিউটার বনাম হার্ডওয়্যার আর্কিটেকচার দ্বারা স্বয়ংক্রিয় মেমরি স্টোরেজ (স্বয়ংক্রিয় ভেরিয়েবল বনাম স্ট্যাটিক ভেরিয়েবল) কতটা নির্ধারিত হয়?

উত্তর:


8

অনেকগুলি নিম্ন-স্তরের মাইক্রোকন্ট্রোলার রয়েছে যাদের সাব্রুটিন কল / রিটার্ন এবং বিঘ্নিত হ্যান্ডলিংয়ের জন্য হার্ডওয়্যার স্ট্যাক রয়েছে, তবে সেখানে ডেটা (ভেরিয়েবল) সংরক্ষণ করা অসম্ভব হলে এটি কঠিন করে তোলে এবং বিশুদ্ধভাবে সফ্টওয়্যার ডেটা স্ট্যাক প্রয়োগ করা মারাত্মকভাবে অক্ষম হবে fficient 8051 একটি ক্লাসিক উদাহরণ, এবং নিম্ন-সমাপ্ত PICs (PIC12 / PIC16) অন্য একটি another এই মেশিনগুলিতে, স্বয়ংক্রিয় ভেরিয়েবলগুলির জন্য স্ট্যাটিক স্টোরেজ অবস্থানগুলি নির্ধারণ করে ডেটা স্ট্যাকটি অনুকরণ করা হয়, এই জায়গাগুলির পুনঃব্যবহারের পরিমাণ সংকলকটির পরিশীলনের উপর নির্ভরশীল।

মনে রাখবেন যে যদি স্ট্যাক এমুলেশনটি এভাবে করা হচ্ছে, তার অর্থ হ'ল পুনরাবৃত্তি - এমন একটি ফাংশন যা নিজেকে সরাসরি বা অপ্রত্যক্ষভাবে ডাকে - কাজ করে না, যেহেতু ফাংশনের প্রতিটি উদাহরণ তার "ব্যক্তিগত" ভেরিয়েবলগুলির জন্য একই স্থির অবস্থানগুলি পুনরায় ব্যবহার করে। কিছু সংকলক পুনরাবৃত্তির সীমিত ব্যবহারের অনুমতি দেয় (সাধারণত #pragmaকোনও ধরণের মাধ্যমে প্রয়োগ করা হয় ) যার ফলে এটি যতটা ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে কমিয়ে দেয়।

ঠিক একদিকে যেমন, সিপিইউ আর্কিটেকচারগুলি রয়েছে যেখানে হার্ডওয়ার স্ট্যাক মোটেই ছিল না, এমনকি ডিইসি পিডিপি -8 এবং আইবিএম সিস্টেম / 360 সহ সাব্রোটিন / বিঘ্নিত হ্যান্ডলিংয়ের জন্যও নয়। এই মেশিনগুলিতে, পিসি (রিটার্ন ঠিকানা) এবং স্ট্যাটাস রেজিস্টার (ইন্টারফ্টের জন্য) রেজিস্টার বা মেমরি লোকেশনে সংরক্ষণ করা হয়েছিল, তবে প্রতিটি ক্ষেত্রেই আমি ভাবতে পারি, মেশিনটিতে পর্যাপ্ত নমনীয় ঠিকানা মোড ছিল যা স্ট্যাক তৈরি করা সহজ করে তোলে made সফটওয়্যার সহ


1
কিছু পূর্ববর্তী কম্পিউটার কোডের মধ্যে ফিরে যাওয়ার কারণ হিসাবে লাফের নির্দেশনা লিখত - পরোক্ষ লাফ না থাকায় - পুনরায় প্রেরণকারী ফাংশনগুলি অবৈজ্ঞানিক করে তোলে (তাত্ত্বিকভাবে কেউ একটি লাফের উপরে শাখা তুলতে পারে তবে জটিলতা যুক্ত করে, কিছু ক্ষেত্রে বিশেষত যখন ডেটা ঠিকানাগুলি সম্পূর্ণভাবে এনকোড থাকে নির্দেশাবলী)।
পল এ। ক্লেটন

4

"একটি স্ট্যাক সমর্থন" এর অর্থ

  1. একটি স্পষ্ট স্ট্যাক পয়েন্টার রেজিস্টার, এবং
  2. স্ট্যাক পয়েন্টার রেজিস্টারে হেরফের / ব্যবহারের জন্য আদিম মেশিন কোডের নির্দেশাবলী রয়েছে (যেমন রেটি, যা কোনও ফাংশন কল থেকে ফিরে আসার জন্য স্ট্যাক পয়েন্টারের ভিত্তিতে প্রোগ্রামের কাউন্টারকে পরিবর্তন করে)।

আপনি এমুলেশনের মাধ্যমে হার্ডওয়্যার সমর্থন ব্যতীত এটিকে অনুকরণ করতে পারেন, যা ভেরিয়েবলগুলি ব্যবহার করে র্যামের মধ্যে একই ধরণের জিনিসগুলি তৈরি করা কোডের সংকলক। কোনও আধুনিক কম্পিউটার আর্কিটেকচারে স্ট্যাকের জন্য সরাসরি সমর্থন না পাওয়া বিরল / অস্বাভাবিক।

প্রোগ্রামিং ল্যাঙ্গুয়েজে ভেরিয়েবলের শব্দার্থবিদ্যার সোজা সমাবেশের চেয়ে উচ্চতর যে কোনও ভাষার জন্য লক্ষ্য হার্ডওয়্যার আর্কিটেকচারের সাথে প্রায় কিছুই করার নেই। সংকলকগুলির কাজ হ'ল মেশিন কোড তৈরি করা যা প্রোগ্রামিং ভাষার সিমেটিক চুক্তির সাথে সম্মতিযুক্ত।


1
বেশিরভাগ আরআইএসসি আইএসএ (যেমন, এমআইপিএস [এমআইপিএস ১ and এবং মাইক্রো এমআইপিএস বাদে], আলফা, স্পার্ক, পিএ-আরআইএসসি, পাওয়ার, সুপার এইচ) এর স্পষ্ট স্ট্যাক পয়েন্টার রেজিস্টার নেই, পরিবর্তে এবিআইতে এ জাতীয় সংজ্ঞা দেওয়া আছে। এমআইপি 16 এবং মাইক্রো এমআইপিএস (কোড ডেনসিটির জন্য) এআরএম ব্যতিক্রম (আংশিক কারণ এটি বেশ কয়েকটি অপারেটিং মোডের জন্য এসপিকে ছায়া দেয়)।
পল এ। ক্লেটন

2

কিছু আর্কিটেকচার (যেমন পিআইসি) এর একটি হার্ডওয়্যার স্ট্যাক রয়েছে যা সামর্থ্যের মধ্যে সীমাবদ্ধ (কেবলমাত্র ফেরতের ঠিকানার জন্য ব্যবহার করা যেতে পারে, ভেরিয়েবল নয়)। কিছু অত্যন্ত ছোট আর্কিটেকচারের কাছে স্টোর-ইন-ইনক্রিমেন্ট বা পুশ নির্দেশনা থাকে না, সুতরাং স্ট্যাকটি করা আরও মজাদারভাবে করা উচিত।

সি-তে 'অটো' ভেরিয়েবলগুলি সর্বদা 'অটো' আরম্ভের আচরণ এবং স্থির আচরণের সাথে 'স্ট্যাটিক' কিছুতে সংকলিত হওয়া উচিত; কিছু স্থাপত্যগুলিতে আপনাকে পুনরাবৃত্তি করার অনুমতি নেই, সেক্ষেত্রে সংকলক স্থিতিশীলভাবে সমস্ত ভেরিয়েবল বরাদ্দ করতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.