উদাহরণস্বরূপ, সি-এর মতো ভাষায় দুটি পূর্ণসংখ্যার তুলনা করার সময়:
if (3 > 2) {
// do something
}
3 কী 2 টির চেয়ে বেশি সত্য (সত্য) বা না (মিথ্যা) অভ্যন্তরীণভাবে তৈরি হয়?
উদাহরণস্বরূপ, সি-এর মতো ভাষায় দুটি পূর্ণসংখ্যার তুলনা করার সময়:
if (3 > 2) {
// do something
}
3 কী 2 টির চেয়ে বেশি সত্য (সত্য) বা না (মিথ্যা) অভ্যন্তরীণভাবে তৈরি হয়?
উত্তর:
খরগোশের গর্তের নীচে সমস্ত, তাই না? ঠিক আছে আমি চেষ্টা করে দেখি
পদক্ষেপ 1. সি থেকে মেশিনের ভাষাতে
সি সংকলক মেশিন ভাষায় সঞ্চিত অপকডগুলির সাথে আপনার তুলনাটিকে রূপান্তরিত করে । মেশিন ল্যাঙ্গুয়েজ সংখ্যার একটি সিরিজ যা সিপিইউ নির্দেশনা হিসাবে ব্যাখ্যা করে। এক্ষেত্রে দুটি ওপকোড থাকবে: "ক্যারি সহ বিয়োগ" এবং "যদি বহন করা হয় তবে লাফ দিন।" অন্য কথায়, একটি নির্দেশে 2 টি 3 থেকে বিয়োগ করা হয় এবং পরবর্তী নির্দেশটি ওভারফ্লো হয়েছে কিনা তা পরীক্ষা করে দেখায়। এগুলি দুটি এবং 3 নম্বরগুলি লোড করার জন্য দুটি নির্দেশাবলীর আগে যেখানে তাদের তুলনা করা যেতে পারে into
MOV AX, 3 ; Store 3 in register AX
MOV BX, 2 ; Store 2 in register BX
SUB AX, BX ; Subtract BX from AX
JC Label ; If the previous operation overflowed, continue processing at memory location "Label"
উপরের প্রত্যেকটির একটি বাইনারি প্রতিনিধিত্ব রয়েছে; উদাহরণস্বরূপ, কোড SUB
হল 2D
হেক্স, অথবা 00101101
বাইনারি হবে।
পদক্ষেপ 2. ALU এ Opcodes
পাটিগণিত opcodes পছন্দ ADD
, SUB
, MUL
, এবং DIV
মৌলিক পূর্ণসংখ্যা গণিত একটি ব্যবহার সঞ্চালন ALU বা গাণিতিক যুক্তি ইউনিট CPU- র মধ্যে নির্মিত। নাম্বার সংরক্ষিত হয় রেজিস্টার কিছু opcodes করে; অন্যান্য ওপকোডগুলি চিপকে নির্দেশ দেয় যে এএলইউকে সেই সময়ে রেজিস্টারে যা কিছু সংরক্ষণ করা হয় তার উপর গণিত করতে to
দ্রষ্টব্য: এই মুহুর্তে আমরা যে কোনও সফটওয়্যার ইঞ্জিনিয়ারকে সি এর মতো 3 জিএল নিয়ে কাজ করা নিয়ে উদ্বিগ্ন হতে পারে সে সম্পর্কে আমরা ভালই আছি are
পদক্ষেপ ৩.এএলইউ, অর্ধ-সংযোজনকারী এবং পূর্ণ-সংযোজক
আপনি কি জানেন যে সমস্ত গাণিতিক ক্রিয়াকলাপগুলি আপনি জানেন সেগুলি NOR ক্রিয়াকলাপকে কমিয়ে দেওয়া যেতে পারে ? এবং ঠিক এটিই ALU কাজ করে।
ALU কেবল বাইনারি সংখ্যার সাথে কীভাবে কাজ করবে তা জানে এবং কেবল ওআর, নট, এবং, এবং এক্সওর এর মতো যৌক্তিক ক্রিয়াকলাপ সম্পাদন করতে পারে। বাইনারি সংযোজন এবং বিয়োগফলের বাস্তবায়ন একটি সংযোজনকারী হিসাবে পরিচিত একটি উপ-সিস্টেমে একটি নির্দিষ্ট উপায়ে সাজানো লজিক্যাল অপারেশনগুলির একটি সিরিজ দিয়ে সম্পন্ন হয় । এই সাবসিস্টেমগুলি "অর্ধ-সংযোজকগুলির" নেটওয়ার্কের সমন্বয়ে গঠিত যা দুটি বিটগুলিতে পরিচালনা করে এবং তাদের একক-বিট যোগফল এবং একক-বিট বহনকারী পতাকা নির্ধারণ করে। এগুলি এক সাথে শৃঙ্খলাবদ্ধ করে, ALU 8, 16, 32 ইত্যাদি বিট সহ সংখ্যায় অপারেশন করতে পারে।
বিয়োগ সম্পর্কে কী? বিয়োগ আরও যোগ করার অন্য একটি রূপ:
A - B = A + (-B)
ALU নির্ণয় -B
গ্রহণ করে দুই এর সম্পূরক এর B
। এটি একবার নেতিবাচক রূপান্তরিত হয়ে গেলে, সংযোজকের কাছে মান জমা দেওয়ার ফলে বিয়োগের অপারেশন হবে।
পদক্ষেপ 4: চূড়ান্ত পদক্ষেপ: অন-চিপ ট্রানজিস্টর
Adders 'অপারেশন যে ইন্টারঅ্যাক্ট যেমন পাওয়া যায় হিসাবে "লজিক গেট," তৈরি করতে বৈদ্যুতিক উপাদানের একটি সমন্বয় ব্যবহার করে প্রয়োগ করা হয় transitor-ট্রানজিস্টার যুক্তিবিজ্ঞান বা TTL এর, অথবা সিএমওএস । এগুলি কীভাবে আপযুক্ত হয় তা দেখতে কয়েকটি উদাহরণের জন্য এখানে ক্লিক করুন ।
একটি চিপে অবশ্যই, এই "সার্কিটগুলি" পরিবাহী এবং ননকন্ডাক্টিভ উপাদানের লক্ষ লক্ষ ক্ষুদ্র বিটগুলিতে প্রয়োগ করা হয়েছে, তবে নীতিটি হ'ল যদি সেগুলি একটি ব্রেডবোর্ডে পূর্ণ আকারের উপাদান ছিল। এই ভিডিওটি দেখুন যা আপনাকে বৈদ্যুতিন মাইক্রোস্কোপের লেন্সের মাধ্যমে মাইক্রোচিপে সমস্ত ট্রানজিস্টর দেখায়।
কিছু অতিরিক্ত নোট:
আপনি যে কোডটি লিখেছেন তা সংকলক দ্বারা প্রকট আকার ধারণ করবে এবং রান সময়ে চালিত হবে না, কারণ এটি কেবলমাত্র ধ্রুবক দ্বারা গঠিত।
কিছু সংকলক মেশিন কোডে সংকলন করে না তবে জাভা বাইটকোড বা। নেট অন্তর্বর্তী ভাষা হিসাবে অন্য একটি স্তর প্রবর্তন করে। কিন্তু শেষ পর্যন্ত এটি সমস্ত মেশিন ভাষার মাধ্যমে কার্যকর করা হয়।
কিছু গাণিতিক অপারেশন আসলে গণনা করা হয় না; এগুলি গাণিতিক কোপ্রোসেসিং ইউনিটে বিশাল টেবিলগুলিতে দেখানো হয়, বা লুক এবং সংকলন বা ইন্টারপোলেশন সংমিশ্রণ থাকে। বর্গমূলের গণনা করার জন্য একটি উদাহরণ হ'ল ফাংশন । আধুনিক পিসি সিপিইউগুলির প্রতিটি সিপিইউ কোরে অন্তর্নির্মিত একটি ফ্লোটিং পয়েন্ট কপ্রোসেসিং ইউনিট রয়েছে।
CMP
ব্যবহার করা হবে, না SUB
- তবে তারপরে আবারও কমবেশি " SUB
ফলাফল যেহেতু উপেক্ষা করা হবে এবং কেবল পতাকাগুলি সেট করা হয়েছে"
if
পুরোপুরি উপেক্ষা করুন , সরাসরি কোডিংয়ে যাচ্ছিdo something
।