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