دانلود مقاله اصول برنامهنويسي اسمبلي
چکیده
دانلود مقاله اصول برنامهنويسي اسمبلي مقاله حاضر به اصول برنامهنویسی اسمبلی، برنامهنویسی در C و مزیت C ، معماری تراشه، خصوصیات و محدودیتها، درون تراشه، حافظه، کنترل وضعیت USB، اصول راهانداز دستگاه، مدل های راه انداز در ویندوزهای مختلف و زبانهای برنامه نویسی و … می پردازد.CPU این تراشه یک RISC هشت بیتی است که میتواند به حافظه برنامه، RAM، پورتهای I/O همه کاره و البته پورت USB دسترسی داشته باشد. پورت USB در حقیقت یک پورت سوئیچ خودکار است که هر دو واسط USB و PS/2 را برای ماوس و دیگر دستگاه های نقطهیابی ممکن میسازد. این ویژگی به منظور طراحی دستگاههایی که قابل تطبیق با هر دو باس باشند قرار گرفته است. وقفهها و ریستهای مختلفی میتوانند به CPU وقفه بدهند.
واژهه ای کلیدی: برنام نویسی اسمبلی، برنامه نویسی در C، درون تراشه، حافظه
این مطلب از فروشگاه پیپر فایل به ارائه مقاله اصول برنامهنويسي اسمبلي در قالب 45 صفحه میپردازیم.
فهرست مطالب
اصول برنامهنویسی اسمبلی ۲
برنامهنویسی در C ۱۱
مزیتهای C ۱۱
معماری تراشه ۱۲
خصوصیات و محدودیتها ۱۳
درون تراشه ۱۴
حافظه ۱۵
اشارهگر پشته برنامه ۱۷
اشارهگر پشته داده ۱۹
کنترل و وضعیت اندپوینت ۲۶
کنترل وضعیت USB ۲۷
اصول راهانداز دستگاه ۲۹
انواع استاندارد دستگاهها ۳۲
دستگاههای شخصی ۳۳
راه انداز دستگاه ۳۳
مدهای کابر و هسته ۳۴
مدل راه انداز Win32 ۳۷
مدل های راه انداز در ویندوزهای مختلف ۳۸
زبانهای برنامه نویسی ۳۹
لایه های راه انداز USB ۴۰
راه انداز کاربردی ۴۱
راه اندازهای باس ۴۲
درباره
CPU تراشه enCorRe دستور پشتیبانی میکند. همه برنامهها باید از این ۳۷ دستور استفاده کنند. سیپرس یک مترجم مجانی ارائه میدهد که کدهای اسمبلی را که شما مینویسید به فایلهای موضوع، که به منظور برنامهریزی در EPROM تراشه تهیه میشوند، تبدیل میکند. اگر ترجیح دهید که در C برنامهنویسی کنید، سیپریس یک مفسر C نیز پیشنهاد میکند.
اگر با برنامهنویسی اسمبلی میکروکنترلر آشنایی داشته باشید، برنامهنویسی برای enCoRo نیز مشابه همان است. اما اگر با برنامهنویسی در بیسیک و C آشنا هستید، باید بدانید که در برنامهنویسی کدهای اسمبلی بسیاری از عملگرهای زبانهای سطح بالا موجود نیست در اینجا دیگر حلقههای While یا for یا انواع مختلف متغیرها وجود ندارد. اما برای تراشهای مانند enCoRo که به منظور کارهای نمایشی و کنترلی غیر پیچیده طراحی شده است، استفاده از کدهای اسمبلی عملی است. برای برنامههای کوتاه، که به سرعت اجرا میشوند احتیاجی به خرید مفسر نیست.
اصول برنامهنویسی اسمبلی
برنامهنویسی اسمبلی شامل یک مجموعه از دستورات است که هر کدام مربوط به کدهای ماشینی هستند که تراشه از آنها پشتیبانی میکند. مثلاً دستور iord، که محل io را میخواند به کد h29 مربوط است. به جای به خاطر آوردن h 29، شما میتوانید iord را بنویسید، و مترجم معادل سازی را برای شما انجام خواهد داد. دستور iord همچنین احتیاج به یک عملوند دارد که محل خواندن را مشخص کند. به عنوان مثال ۰۱h iord پورتی با آدرس h 10 را میخواند.
زبان برنامهنویسی اسمبلی همچنین میتواند شامل دایرکتیو[۱] و توضیحات باشد. دایرکتیوها دستوراتی هستند که به جای اینکه مربوط به CPU باشند، مربوط به مترجم میباشند. دایرکتیوها شما را قادر میسازند که محلی از حافظه را مشخص کنید، متغیرهایی تعریف نمایید. در کل، نقشی که مترجم در کنار اجرای دستورات مشخص شده باید ایفا کند را نشان میدهند. یک نقطه ویرگول ( : )یا ممیز دوبل ( // ) یک عبارت توصیفی را مشخص میکنند که مترجم از آنها چشمپوشی میکند.
مترجمی که توسط سیپرس ارائه میشود، cyasm.exe قابل اجرا در پنجره داس[۲] میباشد. سیپرس مرجعها و راهنمای استفاده برای کاربرانی را تهیه کرده است که چگونگی استفاده از مترجم را شرح میدهد.
مترجم از دو مجموعه دستور مشابه برای CPUهای سری A و سریB پشتیبانی میکند. تراشههای enCoRo از سری B هستند. تراشههای قدیمیتر سیپرس، مانند ۶۳۰۰۱، از سری A بودند و از همه دستورات بجز بعضی از آنها پشتیبانی میکنند.
کدهای مترجم
راهنمای کاربران دارای توضیحات کاملی در مورد کد اسمبلی و دایرکتیوهاست و در اینجا برخی از جزئیات آن تکرار میشود. جدول ۱-۸ خلاصهای از کدها میباشد و جدول ۲-۸ خلاصهای از دایرکتیوها را نشان میدهد. کدهای ماشین تراشه به ۳۷ دستور ترجمه شده است. این فایل حاوی خطوطی است که از هشت بایت هگزاسکی[۵] با استفاده از فاصلهای بین هر کدام تشکیل شده است.در قالببندی هگزاسکی، هر بایت با دو کد اسکی نمایش داده میشود که هر کد یک کاراکتر هگزادسیمال را نشان میدهد. مثلاً، بایت h 80 با کدهای اسکی h 38 برای ۸ و h30 برای صفر نمایش داده میشود. استفاده از قالببندی هگزاسکی شما را قادر میسازد که به راحتی در ویرایشگر متنی مقادیر بایت را ببینید (مثلاً ۸۰). وقتی که کد در RAM برد ارتقا ذخیره شود. RAM شامل بایتهای باینری میشود که توسط بایتهای هگزاسکی نشان داده شده است. مثلاً، h 80 به ۱۰۰۰۰۰۰۰ در باینری ترجمه میگردد.
test.hex کدهای اسمبلی در قالببندی هگزاینتل میباشد. بسیاری از برنامهریزان EPROMها از جمله Hi-Lo شرکت سیپرس، از این قالببندی پشتیبانی میکنند. کیت ارتقاء میتواند به جای قالببندی rom. از این قالببندی استفاده کند. قالببندی هگزاینتل از کاراکترهای هگزاسکی و اطلاعات آدرس دهی استفاده میکند که در اینجا دادههایی که در یک خط فایل hex.* موجود است را میبینید.
test.hex یک فایل لیستی است که توسط مترجم ایجاد میگردد. این فایل هر خط کد اسمبلی و توضیحات را نشان میدهد. در ادامه آنها، کدهای برنامه معادل و آدرسی که باید در آنجا ذخیره شوند نمایش داده میشود. وقتی که از برنامههای نمایشی استفاده میکنیم. این فایل لیستی، مفید است. مثلاً اگر میخواهید که در یک نقطه اجرای برنامه را ثابت کنید، میتوانید از این فایل لیستی برای پیدا کردن آدرس وابسته به آن خط استفاده کنید.
ستون سمت چپ، آدرس در حافظه برنامه را مشخص میکند. این آدرس وقتی که خط، فقط شامل توضیح یا برچسب است تغییر نمیکند. دو ستون بعدی بایتهای ذخیره شده در هر آدرس میباشد. مثلاً، در محل CD03، مقدار Ah 2 کدی برای iowr و h 14 نشان دهنده رجیستری است که میخواهیم روی آن نوشته شود. ستون بعدی تعداد سیکل کلاک است که دستور استفاده میکند (۵). ستونهای سمت راست نیز شامل کدهای اسمبلی و توضیحات میباشند.