মনে করুন আমাদের কাছে একটি -৪-বিট শব্দ-ঠিকানাযোগ্য কম্পিউটার রয়েছে এবং আমরা এটি একটি বাইনারি চিত্র বিটম্যাপ হিসাবে সঞ্চিত একটি 5x7 অক্ষর (যেমন নীচের মতো) একটি মেমরি-ম্যাপযুক্ত ডিসপ্লেতে আউটপুট করতে প্রোগ্রাম করতে চাই।
যেহেতু আমাদের প্রতি অক্ষর 5 x 7 = 35 পিক্সেল রয়েছে, তাই আমরা একক শব্দে 35 বিট ব্যবহার করে একটি অক্ষর সংরক্ষণ করতে পারি। সঙ্গে অন্তত উল্লেখযোগ্য শব্দ বামদিকে এবং ইমেজ মধ্যে প্রতিটি পিক্সেল দিয়ে শুরু বিট দ্বারা প্রতিনিধিত্ব করা হচ্ছে এন উপরে দেখানো তম বিট সংখ্যা "3" উপরের মতো মেমরি সংরক্ষণ করা হবে: 01110100010000100110000011000101110, 29 অব্যবহৃত দ্বারা অনুসরণ বিট সেট 0।
পুরানো / আধুনিক কম্পিউটারগুলিতে অক্ষরগুলি কীভাবে / সংরক্ষণ করা হয়েছিল? অথবা এর পরিবর্তে তারা পিক্সেল প্রতি একক বাইট / শব্দ ব্যবহার করে?
যদি তারা এই পদ্ধতিতে সংরক্ষণ করা হয় তবে এসেম্বলি / মেশিন-কোডের নিয়মিত কী হবে (কম্পিউটারের ইনস্ট্রাকশন সেট আর্কিটেকচার থেকে প্রাথমিক নির্দেশাবলী যেমন বিটওয়াইজ, গাণিতিক এবং ডেটা ট্রান্সপোর্ট অপারেশন ছাড়া আর কিছুই ব্যবহার করা হয়নি) এই ডেটাটিকে একটি চিত্রে রূপান্তর করতে ব্যবহৃত হত ডিসপ্লে দেখতে কেমন? এটি কি এমন কিছু হবে:
- একটি নির্দিষ্ট রেজিস্টারে আপডেট হওয়ার জন্য বর্তমান পিক্সেলের জন্য এক্স এবং ওয়াই ডিসপ্লে সমন্বিত সঞ্চয় করুন।
- দুটি নির্বাচিত আরজিবি মান (এই ক্ষেত্রে সবুজ রঙের জন্য 0,255,0 এবং কালো জন্য 0,0,0) দুটি অন্য পৃথক রেজিস্টারে সংরক্ষণ করুন।
- চিত্রের বর্তমান সারি এবং কলামটি রেকর্ড করার জন্য আরও দুটি নিবন্ধক কাউন্টার হিসাবে 5 এবং 7-এ আরম্ভ করা হিসাবে কাজ করুন।
- কলামের রেজিস্টার যদি 0 হয় না তবে পরীক্ষা করুন যদি এটি না হয় তবে বিটম্যাপের এলএসবি 1 তে সেট করা আছে কিনা পরীক্ষা করুন এবং তারপরে ফলাফলের উপর নির্ভর করে এক্স এবং ওয়াই স্থানাঙ্কের রেজিস্ট্রারের সাথে সম্পর্কিত আরজিবি মান রেজিস্টার করুন, তারপরে ফলাফলটি এমওভি করুন প্রদর্শন আউটপুট রেজিস্টার।
- সারি কাউন্টার রেজিস্টারটি 1 দ্বারা হ্রাস করুন, এটি 0 হয় কিনা তা পরীক্ষা করে দেখুন, তবে এটি আবার 5 এ সেট করুন এবং y এর স্থানাঙ্ককে 1 দ্বারা বৃদ্ধি করুন এবং কলামের কাউন্টারটি 1 দ্বারা হ্রাস করুন।
- বামদিকে বিটম্যাপটি 1 বিট ধারণ করে নিবন্ধকটি স্থানান্তর করুন।
- জেএমপি নির্দেশনা 4।
এটি করার সহজ বা আরও কার্যকর উপায় আছে? দেখে মনে হচ্ছে এমনকি একটি ছোট ছোট পাঠ্য অক্ষরের রেন্ডারিংয়ের মতো সাধারণ কিছুও যথেষ্ট পরিমাণে ক্রিয়াকলাপ গ্রহণ করে এবং প্রায় 200 সিপিইউ চক্র গ্রহণ করতে পারে।
অবশেষে, স্ক্র্যাচ থেকে চিত্রগুলি প্রদর্শনের জন্য মেশিন-লেভেল কোডের জন্য কোনও ভাল বই বা সংস্থান আছে কি না, কারণ এই বিশেষ বিষয়ে তারা গ্লোস করে বলে বা কোডটি একটি উচ্চ স্তরের ভাষায় বা একটিতে লেখা হয়েছে বলে আমি কোনও সন্ধান করতে সক্ষম হইনি ম্যাক্রোগুলি ব্যবহার করে এসেম্বলার, এর সবগুলিই "প্রতারণা" করছে এবং নীচের স্তরে কী চলছে তা মৌলিকভাবে ব্যাখ্যা করে না।