সুচিপত্র:

মেশিন ল্যাঙ্গুয়েজে একটি কম্পিউটার কোড এবং পরীক্ষা করুন: 6 টি ধাপ
মেশিন ল্যাঙ্গুয়েজে একটি কম্পিউটার কোড এবং পরীক্ষা করুন: 6 টি ধাপ

ভিডিও: মেশিন ল্যাঙ্গুয়েজে একটি কম্পিউটার কোড এবং পরীক্ষা করুন: 6 টি ধাপ

ভিডিও: মেশিন ল্যাঙ্গুয়েজে একটি কম্পিউটার কোড এবং পরীক্ষা করুন: 6 টি ধাপ
ভিডিও: কম্পিউটার কেনার আগে জেনে নিন, Computer Buying Guide, What to Know Before Buying a Computer 2024, নভেম্বর
Anonim
Image
Image

এই নির্দেশনায়, আমি আপনাকে দেখাব কিভাবে মেশিন ভাষায় কম্পিউটার প্রোগ্রাম কোড এবং পরীক্ষা করতে হয়। মেশিনের ভাষা কম্পিউটারের মাতৃভাষা। যেহেতু এটি 1s এবং 0s এর স্ট্রিং দ্বারা গঠিত, এটি মানুষের দ্বারা সহজে বোঝা যায় না। এর আশেপাশে কাজ করার জন্য, আমরা প্রথমে প্রোগ্রামগুলিকে C ++ বা জাভা এর মত উচ্চ স্তরের ভাষায় কোড করি তারপর 1s এবং 0s কম্পিউটারে বোঝার জন্য বিশেষ কম্পিউটার প্রোগ্রাম ব্যবহার করি। একটি উচ্চ স্তরের ভাষায় কোড শেখা অবশ্যই একটি বুদ্ধিমান নয় কিন্তু মেশিন ভাষার একটি সংক্ষিপ্ত পরিচিতি কম্পিউটার কীভাবে কাজ করে সে সম্পর্কে মূল্যবান অন্তর্দৃষ্টি প্রদান করতে পারে এবং এই অত্যন্ত গুরুত্বপূর্ণ প্রযুক্তির প্রশংসা বৃদ্ধি করতে পারে।

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

কম্পিউটার ডিজাইনের জন্য, আমি আমার কিন্ডল ই -বুক থেকে আপনার নিজের কম্পিউটার তৈরি করুন - স্ক্র্যাচ থেকে একটি রূপান্তর করেছি। আমি সেখানে বর্ণিত BYOC কম্পিউটার দিয়ে শুরু করেছিলাম এবং এটিকে বিভিন্ন মৌলিক BYOC-I (I for Instructable) এ ছাঁটাই করেছিলাম যা আমরা এই নির্দেশনায় ব্যবহার করব।

BYOC-I এর মেশিন ল্যাঙ্গুয়েজ সহজ এবং বোঝার জন্য সহজ। আপনি কম্পিউটার বা প্রোগ্রামিং কোন বিশেষ জ্ঞান প্রয়োজন হবে না। সমস্ত প্রয়োজন একটি অনুসন্ধানী মন এবং শেখার ইচ্ছা।

আরও পড়া

আপনি ভাবতে পারেন যে কেন আমরা একটি কম্পিউটারকে বর্ণনা করার জন্য "মেশিন" ব্যবহার করি যখন এটি একটি যান্ত্রিক যন্ত্র নয়। কারণটি historicতিহাসিক; প্রথম কম্পিউটিং ডিভাইসগুলো ছিল যান্ত্রিক গিয়ার এবং চাকার সমন্বয়ে গঠিত। অ্যালান শেরম্যানের গীতিকবিতা, "এটা ছিল সমস্ত গিয়ার্স ক্লিকেটি-ক্ল্যাক …" ছিল মাত্র এক বা দুই শতাব্দীতে। প্রাথমিক কম্পিউটিং সম্পর্কে আরও পড়ুন এখানে।

ধাপ 1: অংশ তালিকা

মেশিন ভাষা অনুক্রম এবং কোড
মেশিন ভাষা অনুক্রম এবং কোড

যন্ত্রাংশের তালিকা সংক্ষিপ্ত। কেবলমাত্র এই দুটি আইটেমের প্রয়োজন, উভয়ই বিনামূল্যে ডাউনলোডযোগ্য:

  1. "Logisim-win-2.7.1.exe"-Logisim হল একটি জনপ্রিয় এবং ব্যবহার করা সহজ লজিক সিমুলেটর। এখান থেকে Logisim এক্সিকিউটেবল ফাইলটি ডাউনলোড করুন তারপর আপনার ডেস্কটপের মত সুবিধাজনক স্থানে একটি শর্ট কাট তৈরি করুন। এটি চালু করতে Logisim আইকনে ডাবল ক্লিক করুন। দ্রষ্টব্য: লজিসিম এখানে অবস্থিত জাভা রানটাইম প্যাকেজ ব্যবহার করে। আপনাকে এটি ডাউনলোড করতে বলা হতে পারে।
  2. BYOC-I-Full.cir "-নীচের Logisim সার্কিট ফাইলটি ডাউনলোড করুন।

লজিসিম চালু করুন তারপর "ফাইল-ওপেন" ক্লিক করুন এবং BYOC-I-Full.cir ফাইলটি লোড করুন। উপরের ছবিটি Logisim কাজের পরিবেশ দেখায়। BYOC-I উপ-সার্কিট ব্লক দ্বারা প্রতিনিধিত্ব করে। বাইরেরভাবে সংযুক্ত দুটি ইনপুট, রিসেট এবং রান, এবং BYOC-I- এর রেজিস্টার এবং প্রোগ্রাম মেমরির জন্য হেক্সাডেসিমাল ডিসপ্লে।

BYOC-I এর প্রোগ্রাম মেমোরি একটি সাধারণ প্রোগ্রামের সাথে প্রি-লোড হয় যা A রেজিস্টারে 1 থেকে 5 পর্যন্ত গণনা করে। প্রোগ্রাম চালানোর জন্য (রান), এই পদক্ষেপগুলি অনুসরণ করুন।

ধাপ 1 - Poke টুল এ ক্লিক করুন। কার্সারটি পোকিং "আঙুল" এ পরিবর্তন করা উচিত। ধাপ 2 - রিসেট ইনপুটটি দুবার ঠেকান, একবার এটিকে "1" এ পরিবর্তন করুন এবং আবার "0" এ পরিবর্তন করুন। এটি 0 নম্বরে প্রোগ্রাম শুরু করার জন্য BYOC -I পুনরায় সেট করে। ধাপ 3 - রান ইনপুটটিকে একবার "1" এ পরিবর্তন করার জন্য চাপ দিন। একটি রেজিস্টারে 1 থেকে 5 এর পরিবর্তনের গণনা দেখানো উচিত।

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

ধাপ 2: মেশিন ভাষা অনুক্রম এবং কোড

মেশিন ভাষা অনুক্রম এবং কোড
মেশিন ভাষা অনুক্রম এবং কোড

BYOC-I কম্পিউটার মেশিন ভাষায় লেখা প্রোগ্রামগুলির উপর ভিত্তি করে কাজ সম্পাদন করে। BYOC-I প্রোগ্রামগুলি, পরিবর্তে, একটি ভালভাবে সংজ্ঞায়িত ক্রমে সম্পাদিত নির্দেশাবলীর সমন্বয়ে গঠিত। প্রতিটি নির্দেশনা নির্দিষ্ট দৈর্ঘ্যের কোড দিয়ে তৈরি যা BYOC-I এর বিভিন্ন কর্মক্ষম উপাদানগুলিকে প্রতিনিধিত্ব করে। অবশেষে, এই কোডগুলি 1s এবং 0s এর স্ট্রিং নিয়ে গঠিত যা BYOC-I আসলে চালানো মেশিন ভাষা গঠন করে।

ব্যাখ্যার মাধ্যমে, আমরা কোড দিয়ে শুরু করব এবং প্রোগ্রাম লেভেল পর্যন্ত কাজ করব। তারপরে আমরা একটি সাধারণ প্রোগ্রাম কোড করব, এটি BYOC-I এর স্মৃতিতে লোড করব এবং এটি কার্যকর করব।

কোডগুলি সংখ্যার জন্য একটি নির্দিষ্ট সংখ্যা বাইনারি (1 এবং 0) সংখ্যা বা বিট নিয়ে গঠিত। উদাহরণস্বরূপ, নীচের টেবিল 4 বিট চওড়া একটি কোডের জন্য সমস্ত সম্ভাব্য কোড (সব মিলিয়ে 16) দেখায়। পাশে দেখানো কোড হেক্সাডেসিমাল (বেস 16) এবং দশমিক সমতুল্য। হেক্সাডেসিমাল বাইনারি ভ্যালু উল্লেখ করার জন্য ব্যবহৃত হয় কারণ এটি বাইনারি থেকে কমপ্যাক্ট এবং দশমিকের চেয়ে বাইনারি থেকে রূপান্তর করা সহজ। "0x" উপসর্গটি আপনাকে জানতে দেয় যে নিম্নলিখিত সংখ্যাটি হেক্সাডেসিমাল বা সংক্ষেপে "হেক্স"।

বাইনারি - হেক্সাডেসিমাল - দশমিক 0000 0x0000 00001 0x0001 10010 0x0002 20011 0x0003 30100 0x0004 40101 0x0005 50111 0x0007 71000 0x0008 81001 0x0009 91010 0x000A 101011 0x000B 111100 0x000C 121101 0x000C 121101

একটি কোডের প্রস্থ নির্ধারণ করে যে কতগুলি আইটেম উপস্থাপন করা যায়। উল্লিখিত হিসাবে, উপরে 4-বিট প্রশস্ত কোড 16 টি আইটেম (0 থেকে 15) পর্যন্ত প্রতিনিধিত্ব করতে পারে; অর্থাৎ, 2 গুণ 2 চারবার নেওয়া বা 2 থেকে 4 র্থ শক্তি 16 এর সমান। এখানে এন-বিট কোড ক্যাপাসিটিগুলির একটি সংক্ষিপ্ত তালিকা।

n - আইটেমের সংখ্যা 1 22 43 84 165 326 647 1288 256

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

নির্দেশের ধরন কোড (tt) চারটি নির্দেশের ধরন রয়েছে: (1) MVI - একটি মেমরি রেজিস্টারে একটি অবিলম্বে 8 -বিট ধ্রুবক মান সরান। মেমোরি রেজিস্টার এমন একটি যন্ত্র যা একটি হিসাবের জন্য ডেটা ধারণ করে, (2) MOV - একটি রেজিস্টার থেকে অন্য রেজিস্টারে ডেটা সরান, (3) RRC - একটি রেজিস্টার -টু -রেজিস্টার হিসাব করুন, এবং (4) জেএমপি - জাম্প পরবর্তী নির্দেশনা চালিয়ে যাওয়ার পরিবর্তে একটি ভিন্ন নির্দেশনা। গৃহীত BYOC-I নির্দেশনা টাইপ কোডগুলি নিম্নরূপ:

00 MVI01 MOV10 RRC11 JMP

রেজিস্টার কোড (dd এবং ss) BYOC-I- এর চারটি 8-বিট রেজিস্টার 0 থেকে 255 পর্যন্ত মান সংরক্ষণ করতে সক্ষম। একটি 4-বিট কোড চারটি রেজিস্টার মনোনীত করার জন্য যথেষ্ট:

00 F register01 E register10 D register11 A register

গণনা কোড (ccc) BYOC-I চারটি গাণিতিক/লজিক অপারেশন সমর্থন করে। ভবিষ্যতে আটটি গণনায় সম্প্রসারণের জন্য, একটি 3-বিট কোড ব্যবহার করা হয়:

000 ADD, নির্ধারিত রেজিস্টারে দুটি 8-বিট মান যোগ করুন এবং রেজিস্টার 001 SUB- এর একটিতে ফলাফল সংরক্ষণ করুন, মনোনীত রেজিস্টারে দুটি 8-বিট মান বিয়োগ করুন এবং রেজিস্টারগুলির মধ্যে একটিতে ফলাফল সংরক্ষণ করুন 010-011 ভবিষ্যতে ব্যবহারের জন্য সংরক্ষিত 100 এবং, যৌক্তিকভাবে এবং দুটি 8-বিট মান নির্ধারিত রেজিস্টারে সংরক্ষণ করুন এবং রেজিস্টারগুলির একটিতে ফলাফল সংরক্ষণ করুন 101 অথবা, যৌক্তিকভাবে বা নির্ধারিত রেজিস্টারে দুটি 8-বিট মান এবং রেজিস্টার 110 থেকে 111 এর মধ্যে একটি ফলাফল সংরক্ষণ করুন, ভবিষ্যতে ব্যবহারের জন্য সংরক্ষিত

জাম্প কোড (জে) একটি 1-বিট কোড যা নির্দেশ করে যে জাম্পটি শর্তহীন (জে = 1) বা শূন্য নয় গণনার ফলাফলে শর্তযুক্ত (জে = 0)।

ডেটা/অ্যাড্রেস কোড (v … v)/(a… a) 8-বিট ডেটা নির্দিষ্ট নির্দেশাবলীর মধ্যে অন্তর্ভুক্ত করা যেতে পারে যা 00000000 থেকে 11111111 অথবা 0 থেকে 255 দশমিক পর্যন্ত মান উপস্থাপন করে। BYOC-I এর 8-বিট রেজিস্টারে সঞ্চয়ের জন্য এই ডেটা 8-বিট প্রশস্ত। দশমিক গাণিতিক দিয়ে, আমরা নেতৃস্থানীয় শূন্য দেখাই না। কম্পিউটার গাণিতিক সঙ্গে, আমরা নেতৃস্থানীয় শূন্য প্রদর্শন কিন্তু তারা মান প্রভাবিত করে না। 00000101 সংখ্যাগতভাবে 101 বা 5 দশমিক একই।

প্রস্তাবিত রেফারেন্স

বাইনারি নোটেশন - https://learn.sparkfun.com/tutorials/binaryHexadecimal Notation -

আরও পড়া

একটি প্রক্রিয়া চালানোর জন্য কোড ব্যবহার করার ধারণাটি অনেক দূরে চলে যায়। একটি আকর্ষণীয় উদাহরণ হল জ্যাকওয়ার্ড লুম। স্বয়ংক্রিয় তাঁতটি কাঠের কার্ডের একটি শৃঙ্খলা দ্বারা নিয়ন্ত্রিত ছিল যেখানে বুননের জন্য বিভিন্ন রঙের সুতার কোডগুলি উপস্থাপন করে ছিদ্র করা হয়েছিল। আমি স্কটল্যান্ডে আমার প্রথমটি দেখেছি যেখানে এটি রঙিন টার্টান তৈরিতে ব্যবহৃত হয়েছিল। জ্যাকওয়ার্ড লুমস সম্পর্কে আরও পড়ুন এখানে।

ধাপ 3: BYOC-I নির্দেশাবলীর অ্যানাটমি

BYOC-I নির্দেশাবলীর অ্যানাটমি
BYOC-I নির্দেশাবলীর অ্যানাটমি

BYOC-I এর কোড দেওয়া, আমরা পরবর্তী স্তরে চলে যাই, নির্দেশাবলী। BYOC-I এর জন্য একটি নির্দেশ তৈরি করতে, আমরা কোডগুলিকে নির্দিষ্ট ক্রমে এবং নির্দেশের মধ্যে নির্দিষ্ট স্থানে একসাথে রাখি। সমস্ত কোড সমস্ত নির্দেশাবলীতে প্রদর্শিত হয় না কিন্তু, যখন তারা করে, তারা একটি নির্দিষ্ট অবস্থান দখল করে।

এমভিআই নির্দেশের প্রকারের জন্য সর্বাধিক বিট প্রয়োজন, 12 টি। নির্দেশক শব্দটি 12 বিট দৈর্ঘ্যের করে, আমরা সমস্ত নির্দেশাবলীর সমন্বয় করি। অব্যবহৃত (তথাকথিত "ডোন্ট কেয়ার") বিটগুলিকে মান 0 দেওয়া হয়। এখানে BYOC-I নির্দেশনা সেট রয়েছে।

  1. মুভ ইমিডিয়েট (MVI) - 00 dd vvvvvvvv ফাংশন: একটি 8 -বিট ডেটা ভ্যালু V = vvvvvvvv গন্তব্য রেজিস্টার dd তে সরান। এক্সিকিউশনের পর, রেজিস্টার dd এর মান vvvvvvvv থাকবে। সংক্ষিপ্তকরণ: MVI R, V যেখানে R হল A, D, E, বা F. উদাহরণ: $ 10 00000101 - MVI D, 5 - মান 5 কে D রেজিস্টারে সরান।
  2. রেজিস্টার রেজিস্টারে সরান বাস্তবায়নের পর, উভয় রেজিস্টারের উৎস রেজিস্টারের সমান মূল্য রয়েছে। সংক্ষিপ্তকরণ: MOV Rd, যেখানে Rd হল গন্তব্য রেজিস্টার A, D, E, বা F এবং Rs হল উৎস নিবন্ধন A, D, E, বা F। উদাহরণ: 01 11 01 000000 - MOV A, E - মান সরান এ রেজিস্টার করতে ই রেজিস্টারে
  3. ক্যালকুলেশন রেজিস্টার করতে নিবন্ধন করুন আরডি); SUB Rd, Rs (ccc = 001 Rd - Rd এ সংরক্ষিত); এবং Rd, Rs (ccc = 100 Rd এবং Rd সংরক্ষিত); অথবা Rd, রুপি (ccc = 101 Rd বা Rd তে সংরক্ষিত) উদাহরণ: 10 00 11 001 000 - SUB F, A - F রেজিস্টার থেকে F রেজিস্টারে A রেজিস্টারে মানটি বিয়োগ করুন।
  4. বিভিন্ন নির্দেশে যান (JMP) - 11 j 0 aaaaaaa ফাংশন: aaaa aaaa (a) নি locatedশর্তভাবে (j = 1) -11 1 0 aaaaaaaa এ অবস্থিত একটি ভিন্ন নির্দেশনাতে এক্সিকিউশন পরিবর্তন করুন 0 00001000 - JMP 8 - 8 এর ঠিকানাতে এক্সিকিউশন পরিবর্তন করুন। 0 00000100 JNZ 4 যদি শেষ হিসাবটি একটি শূন্য মান প্রদান করে, তাহলে এক্সিকিউশন পরিবর্তন করে ঠিকানা 4।

ইন্সট্রাকশন ওয়ার্ড বিটগুলি 11 থেকে 0 পর্যন্ত বাম (সবচেয়ে উল্লেখযোগ্য বিট MSB) থেকে ডান (কমপক্ষে উল্লেখযোগ্য বিট LSB) সংখ্যাযুক্ত।

বিট-কোড 11-10 নির্দেশের ধরন 9-8 গন্তব্য নিবন্ধন 7-6 উৎস নিবন্ধন 5-3 গণনা: 000-যোগ করুন; 001 - বিয়োগ; 100 - যৌক্তিক এবং; 101 - যৌক্তিক OR7-0 ধ্রুব মান v … v এবং a… a (0 থেকে 255)

নির্দেশনা সেট উপরের চিত্রে সংক্ষিপ্ত করা হয়েছে। প্রতিটি নির্দেশে কোডগুলির কাঠামোগত এবং সুশৃঙ্খল চেহারা লক্ষ্য করুন। ফলাফলটি BYOC-I এর জন্য একটি সহজ নকশা এবং এটি মানুষের জন্য নির্দেশাবলী বুঝতে সহজ করে।

ধাপ 4: একটি কম্পিউটার নির্দেশ কোডিং

একটি কম্পিউটার নির্দেশ কোডিং
একটি কম্পিউটার নির্দেশ কোডিং

প্রোগ্রাম স্তরে যাওয়ার আগে, উপরে BYOC-I নির্দেশ সেট ব্যবহার করে কিছু উদাহরণ নির্দেশাবলী তৈরি করা যাক।

1. A- কে রেজিস্টার করার জন্য মান 1 এ সরান।

সংক্ষিপ্তকরণ: MVI A, 1 কোড প্রয়োজন: MVI - 00 টাইপ করুন; গন্তব্য নিবন্ধন A - 11; মান - 00000001 ইনস্ট্রাকশন ওয়ার্ড: # 11 00000001

2. রেজিস্টার A- এর বিষয়বস্তুগুলিকে D. নিবন্ধনের জন্য সরান

সংক্ষিপ্তকরণ: MOV D, A (মনে রাখবেন, তালিকায় গন্তব্য প্রথম এবং উৎস দ্বিতীয়) কোড প্রয়োজন: MOV - 01 টাইপ করুন; গন্তব্য নিবন্ধন D - 10; সোর্স রেজিস্টার এ - 11 ইন্সট্রাকশন ওয়ার্ড: 01 10 11 000000

3. রেজিস্টার D এর বিষয়বস্তু যোগ করুন A এবং রেজিস্টার A- তে সংরক্ষণ করুন।

সংক্ষিপ্তকরণ: ADD A, D (ফলাফল গন্তব্য রেজিস্টারে সংরক্ষণ করা হয়) কোড প্রয়োজন: RRC - 10 টাইপ করুন; গন্তব্য নিবন্ধন A - 11; উৎস নিবন্ধন D - 10; হিসাব যোগ - 000 ইন্সট্রাকশন শব্দ: 10 11 10 000 000 (ccc প্রথম 000 - যোগ করুন)

4. ঠিকানাতে শূন্য নয় এ ঝাঁপ দাও If যদি শেষ হিসাবের ফলাফল শূন্য না হয়, তাহলে প্রদত্ত ঠিকানায় নির্দেশনা কার্যকর করা হবে যদি শূন্য হয়, নিচের নির্দেশে মৃত্যুদন্ড কার্যকর হয়।

সংক্ষিপ্তকরণ: জেএনজেড 3 কোড প্রয়োজন: টাইপ জেএমপি - 11; ঝাঁপ টাইপ - 0; ঠিকানা - 00000003 ইনস্ট্রাকশন ওয়ার্ড: 11 0 0 00000003 (ঝাঁপ টাইপ প্রথম 0)

5. নি addressশর্তে ঝাঁপ দাও execution

সংক্ষিপ্তকরণ: জেএমপি 0 কোড প্রয়োজন: টাইপ জেএমপি - 11; ঝাঁপ টাইপ - 1; ঠিকানা - 00000000Instruction Word; 11 1 0 00000000

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

ধাপ 5: একটি কম্পিউটার প্রোগ্রামের অ্যানাটমি

একটি কম্পিউটার প্রোগ্রামের অ্যানাটমি
একটি কম্পিউটার প্রোগ্রামের অ্যানাটমি

একটি কম্পিউটার প্রোগ্রাম হল নির্দেশাবলীর একটি তালিকা যা কম্পিউটার তালিকার শুরুতে শুরু করে এবং তালিকাটির শেষ পর্যন্ত অব্যাহত থাকে। JNZ এবং JMP এর মত নির্দেশনা পরিবর্তন করতে পারে কোন নির্দেশনা পরবর্তীতে কার্যকর করা হয়। তালিকার প্রতিটি নির্দেশনা কম্পিউটারের মেমরিতে 0 থেকে শুরু করে একটি একক ঠিকানা দখল করে।

কম্পিউটার প্রোগ্রামগুলি একটি নির্দিষ্ট কাজ সম্পাদনের জন্য ডিজাইন করা হয়েছে। আমাদের প্রোগ্রামের জন্য, আমরা 1 থেকে 5 পর্যন্ত গণনা করে একটি সহজ কাজ বেছে নেব, স্পষ্টতই, কোন "গণনা" নির্দেশ নেই, তাই প্রথম ধাপ হল কাজটি ধাপে বিভক্ত করা যা BYOC-I এর দ্বারা পরিচালিত হতে পারে সীমিত নির্দেশ সেট।

ধাপ 1 নিবন্ধন করার জন্য 1 সরান এস্টেপ 2 নথিভুক্ত করার জন্য রেজিস্টার এ সরান বিয়োগ ফলাফল শূন্য ছিল না, ধাপ 4 এ ফিরে যান এবং গণনা চালিয়ে যান ধাপ 7 যদি বিয়োগ ফলাফল শূন্য হয়, ফিরে যান এবং আবার শুরু করুন

পরবর্তী ধাপ হল এই ধাপগুলিকে BYOC-I নির্দেশনায় অনুবাদ করা। BYOC-I প্রোগ্রামগুলি ঠিকানা 0 এবং পরপর সংখ্যা থেকে শুরু হয়। জাম্প টার্গেট অ্যাড্রেস সব শেষে নির্দেশ যোগ করার পর যোগ করা হয়..

ঠিকানা: নির্দেশনা - সংক্ষিপ্তকরণ; বিবরণ 0: 00 11 00000001 - MVI A, 1; A1: 01 10 11 000000 - MOV D, A নিবন্ধন করতে 1 সরান; রেজিস্টার A তে রেজিস্টার D যোগ করুন এবং রেজিস্টার A3: 00 01 00 00000101 - MVI E, 5 তে সঞ্চয় করুন; 5 রেজিস্টার E4: 10 01 11 001 000 - SUB E, A সরান; রেজিস্টারে ফলাফল E5: 11 0 0 00000010 - JNZ 2;

প্রোগ্রামটিকে মেমরিতে স্থানান্তর করার আগে, লোগিসিম হেক্স এডিটরের সাথে ব্যবহার করার জন্য বাইনারি নির্দেশনা কোডটি হেক্সাডেসিমালে পরিবর্তন করতে হবে। প্রথমে, নির্দেশটিকে 4 টি বিটের তিনটি গ্রুপে বিভক্ত করুন। তারপর ধাপ ২ -এ টেবিল ব্যবহার করে গোষ্ঠীগুলিকে হেক্সাডেসিমালে অনুবাদ করুন।

ঠিকানা - ইন্সট্রাকশন বাইনারি - ইন্সট্রাকশন বাইনারি স্প্লিট - ইন্সট্রাকশন (হেক্স) 0 001100000001 0011 0000 0001 - 0x03011 011011000000 0110 1100 0000 - 0x06C02 101110000000 1011 1000 0000 - 0x0B803 000100000101 0001 0000 0101 - 0x0101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 111000000010 1110 0000 0000 - 0x0E00

পরীক্ষার জন্য BYOC-I এর স্মৃতিতে প্রোগ্রামটি স্থানান্তর করার সময় এসেছে।

ধাপ 6: স্মৃতি এবং পরীক্ষায় প্রোগ্রাম স্থানান্তর

প্রোগ্রামটিকে স্মৃতি এবং পরীক্ষায় স্থানান্তর করা
প্রোগ্রামটিকে স্মৃতি এবং পরীক্ষায় স্থানান্তর করা
প্রোগ্রামটিকে স্মৃতি এবং পরীক্ষায় স্থানান্তর করা
প্রোগ্রামটিকে স্মৃতি এবং পরীক্ষায় স্থানান্তর করা

লজিসিম "প্রধান" সার্কিটের দিকে তাকালে, দেখানো BYOC-I ব্লকটি এক্সপ্লোরার প্যানে "BYOC-I" লেবেলযুক্ত প্রকৃত কম্পিউটার সার্কিটের প্রতীক। BYOC-I মেমরিতে একটি প্রোগ্রাম প্রবেশ করতে:

  1. BYOC-I ব্লকে ডান ক্লিক করুন (যাকে "সাব-সার্কিট" বলা হয়) এবং নির্বাচন করুন (ওপরে এবং বাম ক্লিক করুন) "BYOC-I দেখুন"।
  2. BYOC-I সার্কিট কর্মক্ষেত্রে উপস্থিত হবে। "প্রোগ্রাম মেমরি" চিহ্নটিতে ডান ক্লিক করুন এবং "সামগ্রী সম্পাদনা করুন.." নির্বাচন করুন।
  3. লজিসিম হেক্স এডিটর ব্যবহার করে, উপরে দেখানো হেক্সাডেসিমাল কোড (শুধুমাত্র বোল্ড) লিখুন।

আপনি এখন প্রোগ্রামটি চালানোর জন্য প্রস্তুত। এক্সপ্লোরার প্যানে "BYOC-I" এ ডাবল ক্লিক করে মূল সার্কিটে ফিরে যান। রান এবং রিসেট ইনপুট শুরু করতে "0" হওয়া উচিত। Poke টুল ব্যবহার করে, প্রথমে রিসেট "1" এ পরিবর্তন করুন তারপর "0" এ ফিরে যান। এটি শুরুর ঠিকানা 0x0000 করে এবং এক্সিকিউশনের জন্য BYOC-I সার্কিট প্রস্তুত করে। এখন রান ইনপুট "1" এ চাপ দিন এবং প্রোগ্রামটি কার্যকর হবে। (দ্রষ্টব্য: লজিসিম ঘড়ি শুরু করার জন্য আপনাকে একবার কন্ট্রোল-কে ট্যাপ করতে হবে। এটি এমন একটি বৈশিষ্ট্য যা আপনাকে লজিসিম ঘড়ি বন্ধ করতে এবং বারবার কন্ট্রোল-টি ট্যাপ করে একটি প্রোগ্রামের মধ্য দিয়ে যেতে দেয়। একবার চেষ্টা করে দেখুন!)

লজিসিম ঘড়ি ফ্রিকোয়েন্সি বিস্তৃত জন্য সেটযোগ্য। ডাউনলোড হিসাবে এটি 8 Hz (প্রতি সেকেন্ডে 8 চক্র)। BYOC-I কম্পিউটার যেভাবে ডিজাইন করা হয়েছে, প্রতিটি নির্দেশনা সম্পন্ন করতে চারটি ঘড়ি চক্র লাগে। সুতরাং, BYOC-I গতি গণনা করতে, ঘড়ির ফ্রিকোয়েন্সি 4 দ্বারা ভাগ করুন। 8 Hz এ, এর গতি প্রতি সেকেন্ডে 2 টি নির্দেশনা। আপনি টুল বারে "সিমুলেট" ক্লিক করে এবং "টিক ফ্রিকোয়েন্সি" নির্বাচন করে ঘড়ি পরিবর্তন করতে পারেন। সম্ভাব্য পরিসীমা 0.25 Hz থেকে 4100 Hz। 8 Hz এ ধীর গতি নির্বাচন করা হয়েছিল যাতে আপনি A রেজিস্টারে গণনা দেখতে পারেন।

BYOC-I সিমুলেশনের সর্বোচ্চ গতি (second 1000 নির্দেশনা প্রতি সেকেন্ড) আধুনিক কম্পিউটারের তুলনায় খুব ধীর। আমার বইতে বর্ণিত BYOC কম্পিউটারের হার্ডওয়্যার সংস্করণ প্রতি সেকেন্ডে 12 মিলিয়নেরও বেশি নির্দেশনা সম্পাদন করে!

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

  1. একটি প্রোগ্রাম লিখুন যা 5 এ শুরু হয় এবং 0. এ গণনা করে। (ANS। Count5to0.txt নিচে)
  2. 2 থেকে শুরু করে, সংখ্যাটি 7 অতিক্রম না হওয়া পর্যন্ত 3 দ্বারা গণনা করুন। আপনি একটু মানসিক গাণিতিক করতে পারেন, 8 টি চেক করুন এটি সেখানে অবতরণ করবে তারপর পুনরায় চালু হবে। আপনার প্রোগ্রামটি আরও সাধারণ উপায়ে লিখুন যা গণনা একটি নির্দিষ্ট সংখ্যা "অতিক্রম" করলে সত্যিই পরীক্ষা করে। ইঙ্গিত: একটি বিয়োগ করলে happensণাত্মক মান পাওয়া যায়, উদাহরণস্বরূপ 8 - 9 = -1 বলুন। তারপর লজিক্যাল এবং পরীক্ষা করে দেখুন 8-বিট সংখ্যার MSB "1" কিনা। (ANS। ExceedsCount.txt)

আপনি কি BYOC-I কম্পিউটারের জন্য অন্যান্য চ্যালেঞ্জিং সমস্যার কথা ভাবতে পারেন? এর সীমাবদ্ধতা দেওয়া, এটি আর কি করতে পারে? [email protected] এ আমার সাথে আপনার অভিজ্ঞতা শেয়ার করুন। আপনি যদি মাইক্রোপ্রসেসর কোডিং করতে আগ্রহী হন, আমার ওয়েবসাইট www.whippleway.com দেখুন।সেখানে আমি Arduinos এ ব্যবহৃত ATMEL মেগা সিরিজের মত আধুনিক প্রসেসরগুলিতে মেশিন কোডিং বহন করি।

প্রস্তাবিত: