আমি কলেজে একটি 68HC11 এ শিখেছি। এগুলির সাথে কাজ করা খুব সহজ তবে সত্যই বেশিরভাগ স্বল্প চালিত মাইক্রোকন্ট্রোলার একই রকম হবে (এভিআর, 8051, পিক, এমএসপি ৪৩০)। মাইক্রোকন্ট্রোলারদের জন্য এএসএম প্রোগ্রামিংয়ে জটিলতা যুক্ত করবে এমন বৃহত্তম কাজটি হ'ল সমর্থিত মেমোরি অ্যাড্রেসিং মোডগুলির সংখ্যা এবং ধরণ । আপনার প্রথমে আরও জটিল ডিভাইসগুলি এড়ানো উচিত যেমন উচ্চতর এআরএম প্রসেসর।
আমি সম্ভবত একটি ভাল সূচনা পয়েন্ট হিসাবে MSP430 সুপারিশ করব। হতে পারে সি তে একটি প্রোগ্রাম লিখুন এবং ইনলাইন অ্যাসেমব্লিকে বিভিন্ন ফাংশন প্রতিস্থাপন করে শিখুন। সহজ, x + y = z ইত্যাদি শুরু করুন
আপনি অ্যাসেম্বলিটির সাথে কোনও ফাংশন বা অ্যালগরিদম প্রতিস্থাপন করার পরে, আপনি এটি কীভাবে কোডিং করেছেন এবং সি সংকলকটি কী উত্পন্ন করেছে তার তুলনা করুন এবং তার বিপরীতে। এটি সম্ভবত আমার মতে সমাবেশ শেখার সর্বোত্তম উপায়গুলির মধ্যে একটি এবং একই সাথে একটি কম্পাইলার কীভাবে কাজ করে যা এম্বেডড প্রোগ্রামার হিসাবে অবিশ্বাস্যভাবে মূল্যবান তাও শিখুন। প্রথমে নিশ্চিত করুন যে আপনি প্রথমে সি সংকলকটিতে অপ্টিমাইজেশন বন্ধ করেছেন বা সংকলকটির উত্পন্ন কোডটি দ্বারা আপনি সম্ভবত খুব বিভ্রান্ত হবেন। ধীরে ধীরে অপ্টিমাইজেশন চালু করুন এবং সংকলকটি কী করে তা নোট করুন।
আরআইএসসি বনাম সিআইএসসি
আরআইএসসি অর্থ 'হ্রাসযুক্ত নির্দেশ সেট কম্পিউটিং' এটি কোনও নির্দিষ্ট নির্দেশের সেটকে নির্দেশ করে না তবে কেবল একটি ডিজাইনের কৌশল বলে যে সিপিইউতে একটি ন্যূনতম নির্দেশনা সেট রয়েছে। কয়েকটি নির্দেশাবলী যা প্রতিটি মৌলিক কিছু করে। এটি 'আরআইএসসি হতে' কী লাগে তার কোনও কঠোর প্রযুক্তিগত সংজ্ঞা নয়। অন্যদিকে সিআইএসসি আর্কিটেকচারে প্রচুর নির্দেশনা রয়েছে তবে প্রতিটি 'আরও কিছু' করে।
আরআইএসসির উদ্দেশ্যযুক্ত সুবিধাগুলি হ'ল আপনার সিপিইউ ডিজাইনের জন্য কম ট্রানজিস্টর দরকার যার অর্থ কম বিদ্যুত ব্যবহার (মাইক্রোকন্ট্রোলারদের জন্য বড়), সস্তার তুলনায় সস্তা এবং উচ্চতর ক্লক রেট বৃহত্তর কার্য সম্পাদনের দিকে পরিচালিত করে। নিম্ন বিদ্যুতের ব্যবহার এবং সস্তা উত্পাদন সাধারণত সত্য, বৃহত্তর পারফরম্যান্স সিআইএসসি আর্কিটেকচারে ডিজাইনের উন্নতির ফলস্বরূপ লক্ষ্যমাত্রায় সত্যই বাঁচেনি।
প্রায় সমস্ত সিপিইউ কোর আজ আরআইএসসি বা 'মিডল গ্রাউন্ড' ডিজাইন। এমনকি সর্বাধিক বিখ্যাত (বা কুখ্যাত) সিআইএসসি আর্কিটেকচার সহ, x86। আধুনিক x86 সিপিইউগুলি অভ্যন্তরীণভাবে আরআইএসসি হ'ল সামনে প্রান্তে বোল্ড একটি ডিকোডার সহ কোরগুলি যা একাধিক আরআইএসসি-র নির্দেশের মতো x86 নির্দেশকে ভেঙে দেয়। আমি মনে করি ইন্টেল এগুলিকে 'মাইক্রো-অপস' বলে।
(আরআইএসসি বনাম সিআইএসসি) সমাবেশে শেখা সহজ, আমি মনে করি এটি একটি টস আপ। আরআইএসসি নির্দেশিকা সেট দিয়ে কিছু করার জন্য সাধারণত সিআইএসসি নির্দেশিকা সেট একই জিনিস করার চেয়ে অ্যাসেমব্লির আরও লাইন প্রয়োজন। অন্যদিকে, সিআইএসসি নির্দেশাবলী উপলব্ধ সংখ্যার বেশি সংখ্যার কারণে শিখতে আরও জটিল।
সিআইএসসি একটি খারাপ নাম পাওয়ার বেশিরভাগ কারণ হ'ল x86 হ'ল এবং এটি সবচেয়ে সাধারণ উদাহরণ এবং এটির সাথে কাজ করতে কিছুটা গোলমাল। আমি মনে করি যে বেশিরভাগ x86 নির্দেশাবলীর ফলাফল খুব পুরানো এবং পিছনে সামঞ্জস্য বজায় রাখার সময় অর্ধ ডজন বা তার বেশি সময় বাড়ানো হয়েছে। এমনকি আপনার 4.5Ghz কোর আই 7 টি 286 মোডে চলতে পারে (এবং এটি বুটে থাকে)।
এআরএম একটি আরআইএসসি আর্কিটেকচার হিসাবে, আমি এটি মাঝারিভাবে বিতর্কযোগ্য বিবেচনা করব। এটি অবশ্যই একটি লোড-স্টোর আর্কিটেকচার। বেস ইন্সট্রাকশন সেটটি আরআইএসসি এর মতো, তবে সাম্প্রতিক সংশোধনীগুলিতে নির্দেশিকা সেটটি বেশ খানিকটা বেড়েছে যেখানে আমি ব্যক্তিগতভাবে এটিকে আরআইএসসি এবং সিআইএসসির মধ্যে একটি মাঝারি স্থল হিসাবে বিবেচনা করব। থাম্ব নির্দেশাবলী সেট সত্যই এটিআরএম নির্দেশাবলী সর্বাধিক 'RISCish'।