একটি কম্পিউটার কীভাবে বাইটের ডেটা টাইপ নির্ধারণ করে?


31

উদাহরণস্বরূপ, কম্পিউটারটি যদি 10111100র‌্যামের একটি নির্দিষ্ট বাইটে সঞ্চয় করে থাকে তবে কম্পিউটার কীভাবে এই বাইটটিকে পূর্ণসংখ্যা, ASCII চরিত্র বা অন্য কিছু হিসাবে ব্যাখ্যা করতে জানে? টাইপ ডেটা কি সংলগ্ন বাইটে সঞ্চিত? (আমি মনে করি না এটি এরকম হবে কারণ এর ফলে এক বাইটের জন্য দ্বিগুণ পরিমাণ জায়গার ব্যবহার হবে))

আমি সন্দেহ করি যে সম্ভবত কোনও কম্পিউটার ডেটা ধরণেরও জানে না, এটি কেবল প্রোগ্রামটি ব্যবহার করে তা জানে। আমার ধারণাটি হ'ল যেহেতু র‌্যাম আর এএম এবং সেহেতু ধারাবাহিকভাবে পড়া হয় না, একটি নির্দিষ্ট প্রোগ্রাম কেবল সিপিইউকে নির্দিষ্ট ঠিকানা থেকে তথ্য আনতে বলে এবং প্রোগ্রামটি এটি কীভাবে চিকিত্সা করবে তা নির্ধারণ করে। এটি টাইপকাস্টিংয়ের প্রয়োজনীয়তার মতো প্রোগ্রামিংয়ের সাথে খাপ খায় বলে মনে হয়।

আমি কি সঠিক পথে রয়েছি?


4
পার্শ্ব নোট হিসাবে: আপনি যদি প্রকারের বিষয়ে কথা বলছেন তবে আপনাকে অবশ্যই এটি ভাষা প্রসঙ্গে করতে হবে। এই ধরণের জিনিস পরিচালনা করার জন্য এটি সংকলকটিতে ছেড়ে গেছে (প্রতীক, চেকের ধরণ, অপারেশন, ingালাই, ঠিকানা রাম ইত্যাদি)। সিপিইউ এবং র‌্যাম কেবল বাইটস জানে
জিন

4
বাইটের ডেটা টাইপ একটি বাইট। এর বাইরেও কম্পিউটার কিছুই জানে না। একটি প্রোগ্রাম বাইট বা একটি বাইটের একটি গ্রুপকে একটি নির্দিষ্ট ডেটা টাইপ হিসাবে ব্যাখ্যা করতে পারে এবং সেগুলির উপর অপারেশন করার চেষ্টা করতে পারে, তবে সেখানে কোনও বিধিনিষেধ নেই। একই গ্রুপের বাইটকে একাধিক ডেটা টাইপ হিসাবে ব্যাখ্যা করা যেতে পারে (যেমন মান প্রকারের সিগন্যালিং পয়েন্টার, সি-জাতীয় ইউনিয়ন ইত্যাদি)। যে র‌্যামটি ক্রমানুসারে পড়া হয় না তা সত্যিই প্রাসঙ্গিক নয়। - এটি বেশি কারণ র‌্যাম সাধারণ উদ্দেশ্য। - উদাহরণস্বরূপ নিবন্ধগুলিও ধারাবাহিকভাবে পড়া হয় না, তবে সেগুলি টাইপ করা হয়।
BrainSlugs83

5
আমার জন্য নির্লজ্জ প্লাগ, তবে এই প্রশ্নটি মূলত প্রায় এক মাস আগে প্রোগ্রামার এসই-তে জিজ্ঞাসা করা হয়েছিল। এটি আমার উত্তর এখানে । এ মুহুর্তে এটি একপ্রকার দীর্ঘ, তবে এটি বিভিন্ন ভিন্ন কোণ থেকে আক্রমণ করে।
Shaz

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

@ BrainSlugs83, আপনি কি উত্তরটিকে রূপান্তর করতে বিবেচনা করতে পারেন?
DW

উত্তর:


38

আপনার সন্দেহ সঠিক। সিপিইউ আপনার ডেটার শব্দার্থ সম্পর্কে চিন্তা করে না। কখনও কখনও, যদিও, এটি একটি পার্থক্য করতে পারে। উদাহরণস্বরূপ, কিছু গাণিতিক ক্রিয়াকলাপগুলি যখন আর্গুমেন্টগুলি শব্দার্থিকভাবে স্বাক্ষরিত বা স্বাক্ষরবিহীন থাকে তখন বিভিন্ন ফলাফল দেয়। সেক্ষেত্রে আপনাকে সিপিইউকে বলতে হবে যে আপনি কোন ব্যাখ্যাটি চেয়েছিলেন।

প্রোগ্রামারটির উপর নির্ভর করে তার ডেটা বোঝা। সিপিইউ কেবল আদেশগুলি মান্য করে, তাদের অর্থ বা লক্ষ্যগুলি সম্পর্কে সুখীভাবে অজানা।


1
"যখন যুক্তিগুলি শব্দার্থ স্বাক্ষরিত বা স্বাক্ষরিত না হয়" সম্পর্কিত, সিপিইউ কীভাবে জানবে? সিপিইউ অপারেশনগুলি কেবল পরামিতি বাইটগুলি দেখে এবং সেই ধরণের ডেটা প্রকারের প্রসঙ্গে সচেতনতার অভাব রয়েছে। আপনি উপযুক্ত সিপিইউ অপারেশন (বা আপনার সংকলকটি করেন) বাছাই করে ডেটা টাইপটি বোঝাচ্ছেন।
শিব

4
@ শিব এই জাতীয় ক্ষেত্রে, স্বাক্ষরযুক্ত সংখ্যা বনাম স্বাক্ষরিত সংখ্যাগুলি প্রক্রিয়া করার জন্য সিপিইউ আসলে একটি আলাদা নির্দেশ জারি করা হয়। ওপি'র সন্দেহের মতোই, প্রোগ্রামটি সেই বিবরণ সরবরাহ করতে বাধ্য, কারণ সিপিইউ অজানা।
কর্ট অ্যামোন - মনিকা

2
আমি যতক্ষণ নিজেকে স্মরণ করি কম্পিউটারের সাথে কাজ করছি এবং যদিও আমি জানি যে সিপিইউ উচ্চ স্তরের প্রোগ্রামিংগুলিতে আমরা যে উচ্চ স্তরের কনস্ট্রাক্ট ব্যবহার করি সেগুলি যত্ন করে না, তবে ধারণাগুলির এই বিচ্ছেদটি এখনও আমাকে সময়ে সময়ে প্রকাশ করে দেয়
লুপপ্যাক্স 3'15

1
@ লাউপ্যাক্স ওয়েল, সত্যিই নিম্ন-স্তরের সমাবেশে কাজ করা কিছুটা সাহায্য করে - এমনকি mov al, 42এটি উচ্চ স্তরেরও এক ধরণের - এটি স্পষ্টতই কেবল একটি সম্ভাব্য নির্দেশ যা এই কল করতে পারে, তবে এটি এখনও কিছুটা দূরে সরে গেছে। তবে, mov.8 al, 42স্পষ্টভাবে ব্যবহার করা এটিকে বেদনাদায়ক স্পষ্ট করে তোলে :)
লুয়ান

1
@ শিভ: আমি লক্ষ করতে চাই যে এমন মেশিন রয়েছে যেখানে মেমরির ডেটা টাইপ করা হয়। এগুলিকে ট্যাগযুক্ত মেমরি আর্কিটেকচার (বা কেবল ট্যাগ করা আর্কিটেকচার) বলা হয় তবে তারা আংশিকভাবে নিয়মিত আর্কিটেকচারের মতো বাণিজ্যিকভাবে সফল হয়নি কারণ আমরা এখন বেশিরভাগ সমাবেশের পরিবর্তে সংকলিত ভাষায় প্রোগ্রাম করি এবং সংকলক টাইপিংয়ের যত্ন নেয়। দেখুন: en.wikipedia.org/wiki/Tagged_architecture
slebetman

14

যেমন অন্যরা ইতিমধ্যে উত্তর দিয়েছে, আজকের সাধারণ সিপিইউগুলি জানে না যে প্রদত্ত মেমরির অবস্থান কী; সফ্টওয়্যার সিদ্ধান্ত নেয়।

তবে অন্যান্য সম্ভাবনাও রয়েছে। উদাহরণস্বরূপ লিস্প মেশিনগুলি ট্যাগযুক্ত আর্কিটেকচার ব্যবহার করে যা প্রতিটি স্মৃতি অবস্থানের ধরণ সঞ্চয় করে; এইভাবে হার্ডওয়্যার নিজেই উচ্চ-স্তরের ভাষার কিছু কাজ করতে পারে।

এবং এখনও, আমি অনুমান করি আপনি একই নীতি অনুসরণ করতে ইন্টেল, এএমডি, এআরএম এবং অন্যান্য আর্কিটেকচারের এনএক্স বিটটি বিবেচনা করতে পারেন : কোনও প্রদত্ত মেমরি জোনে ডেটা বা নির্দেশাবলী রয়েছে কিনা তা হার্ডওয়্যার স্তরে পার্থক্য করুন।

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

এই কোওড়া প্রশ্নের মধ্যে ট্যাগ মেমরি কীভাবে কাজ করেছে, এর কার্য সম্পাদনের প্রভাব এবং মৃত্যুর ঘটনা এবং আরও অনেক কিছু নিয়ে মন্তব্য রয়েছে।


ট্যাগ আর্কিটেকচার একটি আকর্ষণীয় নোট। এটি উল্লেখযোগ্যভাবে দ্রুত হবে?
বেসিনেটর

4

হ্যাঁ। প্রোগ্রামটি কেবল স্মৃতি থেকে একটি বাইট পায় এবং এটি এটি চাইলে তা ব্যাখ্যা করতে পারে।


3

কোনও ধরণের টিকা নেই।
র‌্যাম বিশুদ্ধ ডেটা সঞ্চয় করে এবং তারপরে প্রোগ্রামটি কী করবে তা নির্ধারণ করে।

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

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

অবশ্যই আপনি স্ট্রিং (অক্ষরগুলি) পড়তে পারেন এবং তারপরে ভাসমান পয়েন্টের মান, পূর্ণসংখ্যা এবং তাদের মিশ্রণ করতে পারেন।


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

1
আমি আপনার সাথে পুরোপুরি একমত, এই কারণেই আমি লিখেছি যে কেউ হয়তো সেখানে স্ট্রিংগুলি চাপতে পারে। এবং একই সময়ে লোকেরা পূর্ণসংখ্যার উপর ফ্লোটিং পয়েন্ট অপারেশন করেছিল, কারণ এটি দ্রুত ছিল। এটাই হচ্ছে মাধ্যম!
ইভিল

@ এইচসিবিপিসেনিনিগানস-এ এমন নির্দেশাবলী রয়েছে যা ভাসমান-পয়েন্টের মানগুলি হেরফের করে। যদি এফএডিডি ব্যবহার করা হয় তবে এটি কেবলমাত্র বোঝায় যে (4,8, বা 10) মেমরিের বেট গ্রুপগুলি ভাসমান-পয়েন্ট সংখ্যা ধারণ করে। এটি বিভিন্ন ধরণের নির্দেশের জন্য সত্য: দুটি পূর্ণসংখ্যা কেবলমাত্র পূর্ণসংখ্য হলে বোধ হয়, লাফিয়ে যদি কেবল কোনও ঠিকানা হয় তবে তা বোঝায়।
জেডিগোগস

@ সেথ এবং অ্যাসিজেএসএস যেটি লিগ্যাসি ফ্লোটিং পয়েন্টের জন্য 8087 নির্দেশাবলী সজ্জিত বলে মনে করা হয়নি, তবে এটি নতুন সিআইএমডি রেজিস্টারগুলির ক্ষেত্রে যা কেবল কোনও ব্যাখ্যা ছাড়াই লোডিং / সেভিংয়ের জন্য ব্যবহার করা যেতে পারে (যদিও তাদের অবশ্যই প্রান্তিক করা আবশ্যক), এবং একটি সতর্কতা সিআইএমডি রেজিস্টারগুলি যদি কখনও প্রাসঙ্গিক স্যুইচে সংরক্ষণ করার প্রয়োজন না হয় তবে সেগুলি ব্যবহার করা হয়নি । যদি আপনি (কেবলমাত্র) এক্সএমএম নিবন্ধের মাধ্যমে 8 বাইট সরান তবে এটি সম্পূর্ণ ক্ষতি হিসাবে পুরো সেটটি সংরক্ষণ করা দরকার a
জেডিগোগস

3

সিপিইউ তেমন গুরুত্ব দেয় না, এটি এসেম্বলি কোডটি কার্যকর করে, যা কেবলমাত্র তথ্যকে চারপাশে সরিয়ে দেয়, শিফট করে, এটিকে যুক্ত করে বা এটি গুণ করে ...

ডেটা টাইপগুলি একটি উচ্চ স্তরের ভাষা ধারণা: সি বা সি ++ তে আপনাকে যে কোনও ডেটা ম্যানিপুলেট করে তার জন্য প্রকারগুলি নির্দিষ্ট করতে হবে; সি / সি ++ কম্পাইলার সিপিইউ প্রসেস করার জন্য ডান কমান্ডগুলিতে এই টুকরাগুলির ডেটা টুকরো রূপান্তর করার যত্ন নেয় (সংকলকগণ অ্যাসেম্বলি কোড লেখেন)

এমনকি কিছু উচ্চ স্তরের ভাষায়, প্রকারগুলি অনুমান করা যেতে পারে: পাইথন বা জাভাস্ক্রিপ্টে উদাহরণস্বরূপ, কোনওকে ডেটা প্রকার নির্দিষ্ট করতে হয় না, তথ্যের মধ্যে একটি ধরণের থাকে এবং আপনি একটি পূর্ণসংখ্যার সাথে একটি স্ট্রিং যোগ করতে পারেন না, তবে আপনি যুক্ত করতে পারেন একটি পূর্ণসংখ্যার সাথে একটি ভাসা: 'সংকলক' (যা জাভাস্ক্রিপ্টের ক্ষেত্রে একটি জেআইটি (জাস্ট ইন টাইম) সংকলক historতিহাসিকভাবে ব্রাউজারগুলি জাভাস্ক্রিপ্ট কোড ব্যাখ্যা করে তবে আজকাল জাভাস্ক্রিপ্ট ইঞ্জিনগুলি সংকলক হয়।

কোড, সর্বদা মেশিন কোডে সংকলিত হয়ে যায়, তবে স্পষ্টতই মেশিন কোড ফর্ম্যাটটি আপনি যে মেশিনটিকে লক্ষ্য করছেন তার উপর নির্ভর করে (x86 64 বিট কোড কোনও x86 32 বিট মেশিনে বা কোনও এআরএম প্রসেসরের উপর কাজ করবে না উদাহরণস্বরূপ)

সুতরাং সেখানে ব্যাখ্যামূলক কোড চালানোর সাথে জড়িত অনেক স্তর রয়েছে।

জাভা এবং সি # অন্যান্য আকর্ষণীয় বিষয়গুলি যেমন জাভা বা সি # কোডটি একটি জাভা বাইনারি (বাইটকোড) তে প্রযুক্তিগতভাবে 'সংকলিত' হয় তবে সেই কোডটি নিজেই জাভা রানটাইম দ্বারা ব্যাখ্যা করা হয় যা অন্তর্নিহিত হার্ডওয়ারের সাথে নির্দিষ্ট (একটি ইনস্টল করতে হবে) জেআরই জাভা বাইনারি (জারস) চালানোর জন্য সঠিক মেশিনকে লক্ষ্য করে


একটি সংকলক সংকলন করে, এটি জেআইটি হোক বা না হোক; এবং কোনও অনুবাদক সংকলন না করে ব্যাখ্যা করেন (কারণ তা না হলে এটি সংকলক হবে!)। তারা খুব আলাদা জিনিস। এবং বাইটকোড ব্যাখ্যার কারণে "জাভা ফানি হচ্ছে" সম্পর্কিত বিবেচনা করুন, এমনকি x86 মেশিন কোডটি মাইক্রোকোডে খুব মাইক্রোপ্রসেসর দ্বারা ব্যাখ্যা করা হবে (বা এমনকি সংকলিত?) হবে ।
hmijail

স্পষ্টতার জন্য ধন্যবাদ ... সম্মত: একটি সংকলক সংকলন, এবং একজন দোভাষী জাভাস্ক্রিপ্টের ক্ষেত্রে যদিও গল্পটি কিছুটা জটিল কারণ যেহেতু কিছু পুরানো ব্রাউজার কোডটি ব্যাখ্যা করে, তবে আরও আধুনিক ব্রাউজারগুলি প্রকৃতপক্ষে সঠিক সময়ে সংকলন করে, সম্ভবত এ কারণেই এটি এখনও 'বর্ণিত' ভাষা হিসাবে উল্লেখ করা হয় যদিও এটি প্রযুক্তিগতভাবে আর হয় না।
মিঃ

তবে আফাইক, জেএস ব্যাখ্যা করা শুরু করে এবং তারপরে প্রয়োজন অনুসারে সংকলিত হতে পারে। এবং জেআইটিগুলি প্রচুর বিষয়ের উপর নির্ভর করে আবার অনুবাদ করা থেকে সংকলিত থেকে সংকলিত রূপান্তর করতে পারে। উদাহরণস্বরূপ, একটি কোডের টুকরা একটি নির্দিষ্ট ধরণের ভেরিয়েবলের জন্য সংকলিত হতে পারে; তবে তারপরে কোডটি আবার সেই চলকটির সাথে পৃথক প্রকারের সাথে চালানো হয়, সুতরাং বিদ্যমান সংকলিত কোডটি ব্যবহার করা যাবে না তাই অনুবাদক লাফিয়ে লাফিয়ে যান - যতক্ষণ না কোডটি নতুন ধরণের জন্য আবার সংকলিত হয় ...
হামিজাইল

আমি কিছু না বলে আপনি আমাকে উদ্ধৃত করছেন, দয়া করে এটি সরান কারণ এটি সম্পূর্ণ ভুল। মাইক্রোকোডের ওএসের সাথে কিছুই করার নেই; এটি মাইক্রোপ্রসেসরের অভ্যন্তরীণ কিছু। 32 বিট বা 64 বিটেরও এর সাথে কিছুই করার নেই।
hmijail

3

ডেটাটাইপগুলি কোনও হার্ডওয়্যার বৈশিষ্ট্য নয়। সিপিইউ বিভিন্ন কমান্ডের কয়েক (ভাল, অনেক) জানে। এগুলিকে সিপিইউয়ের নির্দেশিকা সেট বলা হয় ।

সর্বাধিক পরিচিতদের মধ্যে একটি হ'ল x86 নির্দেশিকা সেট । আপনি যদি এই পৃষ্ঠায় "গুণ" জন্য অনুসন্ধান করেন, আপনি 50 ফলাফল পাবেন। MULPDএবং MULSDদ্বিগুণের গুণনের জন্য, FIMULপূর্ণসংখ্যার গুণনের জন্য ...

এই কমান্ডগুলি রেজিস্টারগুলিতে কাজ করে। নিবন্ধগুলি মেমরি স্লট যা বিটগুলির একটি নির্দিষ্ট সংখ্যক (প্রায়শই 32 বা 64, আপনার সিপিইউ কোন আর্কিটেকচারটি ব্যবহার করে তার উপর নির্ভর করে) এই বিটগুলি উপস্থাপন করে তা বিবেচনা করে না। সুতরাং সিপিইউ নির্দেশিকা নিবন্ধগুলির মানগুলিকে আলাদাভাবে ব্যাখ্যা করে, তবে মানগুলিতে নিজস্ব প্রকার থাকে না।

স্টুয়ার্ট উইলিয়ামস পাইকন 2017 এ একটি উদাহরণ দিয়েছেন :

এখানে চিত্র বর্ণনা লিখুন


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

2

... যে কোনও নির্দিষ্ট প্রোগ্রাম কেবলমাত্র নির্দিষ্ট ঠিকানা থেকে তথ্য আনতে সিপিইউকে বলে এবং প্রোগ্রামটি কীভাবে এটি আচরণ করবে তা নির্ধারণ করে।

যথাযথভাবে। তবে র‌্যামটি "ধারাবাহিকভাবে" পঠিত হয় না, এবং এটি র্যান্ডম অ্যাক্সেস মেমোরির অর্থ দাঁড়ায় যা একেবারে বিপরীত।

বুদ্ধিমান কি একটি বাইট এছাড়া হয় , আপনি এমনকি জানি না যদি এটি একটি এর না বাইট , অথবা একটি ফ্লোটিং পয়েন্ট নম্বর মত একটি বৃহত্তর আইটেমটি একটি টুকরা।

আমি কিছু নির্দিষ্ট উদাহরণ দিয়ে অন্যান্য উত্তরগুলিতে যুক্ত করতে চাই।

বিবেচনা করুন 01000001। প্রোগ্রামটির অর্থ বিবেচনা ছাড়াই এটি কোনও বৃহত পার্সেলের অংশ হিসাবে এটি এক জায়গা থেকে অন্য জায়গায় অনুলিপি করতে পারে। তবে টেক্সট-মোড ভিডিও বাফারের দ্বারা ব্যবহৃত ঠিকানায় এটি অনুলিপি করার ফলে চিঠিটি Aস্ক্রিনের কিছু অবস্থানে প্রদর্শিত হবে। কার্ডটি যখন কোনও সিজিএ গ্রাফিক্স মোডে থাকে তখন ঠিক একই ক্রিয়াটি একটি লাল পিক্সেল এবং একটি নীল পিক্সেল প্রদর্শন করে।

একটি নিবন্ধে এটি পূর্ণসংখ্যা হিসাবে 65 নম্বর হতে পারে। 32 এর বিট সেট করতে পাটিগণিত করা প্রসঙ্গ ছাড়াই যে কোনও অর্থ হতে পারে, তবে বিশেষত কোনও চিঠিটি ছোট ক্ষেত্রে পরিবর্তিত হতে পারে।

8086 সিপিইউ (এখনো) বিশেষ নির্দেশাবলী বলা DAA এর যে ব্যবহার করা হয় যখন রেজিস্টার 2 দশমিক সংখ্যা ঝুলিতে, তাই আপনি যদি ঠিক যে নির্দেশ আপনি দুটি সংখ্যা হিসাবে ব্যাখ্যা করা হয় ব্যবহার করা 41

প্রোগ্রামগুলি ক্র্যাশ হয় কারণ কোনও স্মৃতি শব্দের পাঠ করা হয় তা ভেবে এটি পয়েন্টার হয় যখন অন্য কোনও কিছু সেখানে রাখা হয়।

একটি ডিবাগার ব্যবহার করে, মেমরি পরিদর্শন করে, মানচিত্রটি প্রদর্শনের জন্য ব্যাখ্যাটি নির্দেশ করতে ব্যবহৃত হয়। এই চিহ্নের তথ্য ছাড়াই, একটি নিম্ন-স্তরের ডিবাগার আপনাকে নির্দিষ্ট করতে দেয়: এই ঠিকানাটি 16-বিট শব্দ হিসাবে দেখান, এই ঠিকানাটিকে দীর্ঘ ভাসমান বিন্দু হিসাবে, স্ট্রিং হিসাবে দেখান ... যাই হোক না কেন। একটি নেটওয়ার্ক প্যাকেট ডাম্প বা অজানা ফাইল ফর্ম্যাটটির দিকে তাকানো, এটি বিস্মিত করে তোলা একটি চ্যালেঞ্জ।

এটি আধুনিক কম্পিউটার আর্কিটেকচারে শক্তি এবং নমনীয়তার একটি প্রধান উত্স: একটি মেমরি সেল বলতে যে কোনও কিছু , ডেটা বা নির্দেশকে বোঝাতে পারে যা কেবল প্রোগ্রামের সাথে এটির মূল্যের সাথে কী করে এবং কীভাবে পরবর্তী ক্রিয়াকলাপগুলিকে প্রভাবিত করে তা দ্বারা "কী" বোঝায় তা অন্তর্ভুক্ত। অর্থ পূর্ণসংখ্যার প্রস্থের চেয়ে গভীর: এই অক্ষরগুলি ... অক্ষরগুলি ascii বা ebcdic? ইংরেজি বা এসকিউ পণ্য কোডগুলিতে শব্দ তৈরি করছেন? প্রেরণের ঠিকানা না ফেরত ঠিকানাটি এসেছে? সর্বনিম্ন স্তরের ব্যাখ্যার (যৌক্তিক বিট; পূর্ণসংখ্যার মতো, স্বাক্ষরিত বা স্বাক্ষরবিহীন; ভাসমান; বিসিডি; পয়েন্টার) নির্দেশ-সেট স্তরে প্রাসঙ্গিক, তবে আপনি দেখতে পাচ্ছেন যে এটি সমস্ত স্তরের কোনও স্তরে রয়েছে: দ্য টুখামে এটি মুদ্রিত অবস্থানের কারণে ঠিকানাটি এটি। এটি সিপিইউ নয়, পোস্টম্যানের নিয়মের সাথে প্রাসঙ্গিক। প্রসঙ্গটি একটি বড় ধারাবাহিকতা, এর এক প্রান্তে বিট।


N পাদটীকা: ডিএএ নির্দেশনা বাইট হিসাবে এনকোড করা আছে 00100111। সুতরাং বাইট হ'ল নির্দেশ প্রবাহে পড়লে পূর্বোক্ত নির্দেশাবলী, এবং 27বিসিডি অঙ্ক হিসাবে ব্যাখ্যা করা হলে অঙ্কগুলি এবং 0x27 = 39 একটি পূর্ণসংখ্যা হিসাবে, যা ASCII তে 9 সংখ্যা হয় এবং বিঘ্নিত টেবিলের অংশ (INT 13 এর অর্ধেক) বিআইওএস পরিষেবা রুটিনের জন্য ব্যবহৃত 2-বাইট ঠিকানা)।


1

কম্পিউটার জানে যে মেমোরি অবস্থানটি একটি নির্দেশনা কেবলমাত্র একটি বিশেষ উদ্দেশ্য-নিবন্ধের নির্দেশ নির্দেশিকা যাকে নির্দেশ পয়েন্টার বলা হয় তাদের এক বিন্দু বা অন্য দিকে নির্দেশ করে। নির্দেশ নির্দেশক যদি কোনও মেমরি শব্দের দিকে নির্দেশ করে তবে এটি নির্দেশ হিসাবে লোড হয়। কম্পিউটার ছাড়াও প্রোগ্রাম এবং অন্যান্য ধরণের ডেটাগুলির মধ্যে পার্থক্য জানার কম্পিউটারের কোনও উপায় নেই।

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