مقاله اصول برنامه نویسی اسمبلی فایل ورد (word) دارای 47 صفحه می باشد و دارای تنظیمات و فهرست کامل در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله اصول برنامه نویسی اسمبلی فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : توضیحات زیر بخشی از متن اصلی می باشد که بدون قالب و فرمت بندی کپی شده است
بخشی از فهرست مطالب پروژه مقاله اصول برنامه نویسی اسمبلی فایل ورد (word)
اصول برنامهنویسی اسمبلی
برنامهنویسی در C
مزیتهای C
معماری تراشه
خصوصیات و محدودیتها
درون تراشه
حافظه
اشارهگر پشته برنامه
اشارهگر پشته داده
کنترل و وضعیت اندپوینت
کنترل وضعیت USB
اصول راهانداز دستگاه
انواع استاندارد دستگاهها
دستگاههای شخصی
راه انداز دستگاه
مدهای کابر و هسته
مدل راه انداز Win
مدل های راه انداز در ویندوزهای مختلف
زبانهای برنامه نویسی
لایه های راه انداز USB
راه انداز کاربردی
راه اندازهای باس
CPU تراشه enCorRe دستور پشتیبانی میکند. همه برنامهها باید از این 37 دستور استفاده کنند. سیپرس یک مترجم مجانی ارائه میدهد که کدهای اسمبلی را که شما مینویسید به فایلهای موضوع، که به منظور برنامهریزی در EPROM تراشه تهیه میشوند، تبدیل میکند. اگر ترجیح دهید که در C برنامهنویسی کنید، سیپریس یک مفسر C نیز پیشنهاد میکند
اگر با برنامهنویسی اسمبلی میکروکنترلر آشنایی داشته باشید، برنامهنویسی برای enCoRo نیز مشابه همان است. اما اگر با برنامهنویسی در بیسیک و C آشنا هستید، باید بدانید که در برنامهنویسی کدهای اسمبلی بسیاری از عملگرهای زبانهای سطح بالا موجود نیست در اینجا دیگر حلقههای While یا for یا انواع مختلف متغیرها وجود ندارد. اما برای تراشهای مانند enCoRo که به منظور کارهای نمایشی و کنترلی غیر پیچیده طراحی شده است، استفاده از کدهای اسمبلی عملی است. برای برنامههای کوتاه، که به سرعت اجرا میشوند احتیاجی به خرید مفسر نیست
اصول برنامهنویسی اسمبلی
برنامهنویسی اسمبلی شامل یک مجموعه از دستورات است که هر کدام مربوط به کدهای ماشینی هستند که تراشه از آنها پشتیبانی میکند. مثلاً دستور iord، که محل io را میخواند به کد h29 مربوط است. به جای به خاطر آوردن h 29، شما میتوانید iord را بنویسید، و مترجم معادل سازی را برای شما انجام خواهد داد. دستور iord همچنین احتیاج به یک عملوند دارد که محل خواندن را مشخص کند. به عنوان مثال 01h iord پورتی با آدرس h 10 را میخواند
زبان برنامهنویسی اسمبلی همچنین میتواند شامل دایرکتیو[1] و توضیحات باشد. دایرکتیوها دستوراتی هستند که به جای اینکه مربوط به CPU باشند، مربوط به مترجم میباشند. دایرکتیوها شما را قادر میسازند که محلی از حافظه را مشخص کنید، متغیرهایی تعریف نمایید. در کل، نقشی که مترجم در کنار اجرای دستورات مشخص شده باید ایفا کند را نشان میدهند. یک نقطه ویرگول ( : )یا ممیز دوبل ( // ) یک عبارت توصیفی را مشخص میکنند که مترجم از آنها چشمپوشی میکند
مترجمی که توسط سیپرس ارائه میشود، cyasm.exe قابل اجرا در پنجره داس[2] میباشد. سیپرس مرجعها و راهنمای استفاده برای کاربرانی را تهیه کرده است که چگونگی استفاده از مترجم را شرح میدهد
مترجم از دو مجموعه دستور مشابه برای CPUهای سری A و سریB پشتیبانی میکند. تراشههای enCoRo از سری B هستند. تراشههای قدیمیتر سیپرس، مانند 63001، از سری A بودند و از همه دستورات بجز بعضی از آنها پشتیبانی میکنند
کدهای مترجم
راهنمای کاربران دارای توضیحات کاملی در مورد کد اسمبلی و دایرکتیوهاست و در اینجا برخی از جزئیات آن تکرار میشود. جدول 1-8 خلاصهای از کدها میباشد و جدول 2-8 خلاصهای از دایرکتیوها را نشان میدهد. کدهای ماشین تراشه به 37 دستور ترجمه شده است
جدول 1-8: متجرم Cyasm از 37 دستور اسمبلی برای enCoRo پشتیبانی میکند
نوع دستور
دستور
توضیح
تابعهای منطقی و ریاضی
ADD
اضافه کردن بدون نقلی
ADC
اضافه کردن همراه با نقلی
AND
AND کردن بیتی
ASL
انتقال به چپ منطقی
ASR
انتقال به راست منطقی
CMP
مقایسه
CPL
متمم کردن آکومولاتور
DEC
کاهش
INC
افزایش
OR
OR کردن بیتی
RLC
چرخش به چپ همراه با نقلی
RRC
چرخش به راست همراه با نقلی
SUB
تفریق بدون نقلی
SBB
تفریق همراه با نقلی
XOR
OXR بیتی
پرشهای برنامه و کنترلی
GALL
فراخوانی تابع
HALT
اجرای ایست
RETI
بازگشت از وقفه
JACC
پرش آکومولاتور
JC
پرش در صورتی که نقلی یک باشد
JMP
پرش
JNC
پرش در صورتی که نقلی صفر باشد
JNZ
پرش اگر صفر نباشد
JZ
پرش اگر صفر باشد
RET
بازگشت
XPAGE
صفحه حافظه
ادامه جدول 1-8: مترجم Cyasm از 37 دستور اسمبلی برای enCoRo پشتیبانی میکند
نوع دستور
دستور
توضیح
انتقال داده
INDEX
خواندن جدول
IORD
خواندن از I/O
IOWR
نوشتن بر I/O
IOWX
مشخص کردن نوشتن I/O
MOV
انتقال
POP
انتقال داده از پشته به آکومولاتور
PUSH
انتقال داده از آکومولاتور به پشته
SWAP
SWAP
بقیه
DI
غیر فعال کردن وقفهها
EI
فعال کردن وقفهها
NOP
بدون عمل
این دستورات، تابعهای اصلی ریاضی و منطقی، پرسشهای برنامه و کپی دادهها از رجیسترها، پورتها و RAM را انجام میدهند، دو بیت پرچ نقلی[3] و صفر اطلاعات بیشتری را ارائه میدهند. مانند اینکه نتیجه دستور add دارای سرریز[4] بوده است یا خیر یا اینکه نتیجه صفر شده است یا نه
تراشه از سه حالت آدرس دهی پشتیبانی میکند که چگونگی استفاده از عملوند را برای دستور مشخص میکند. همه دستورات از هر سه حالت آدرس دهی پشتیبانی نمیکنند
در آدرس دهی سریع، دستورات از مقدار عملوند مستقیماً استفاده میکنند. این دستور از آدرس دهی سریع برای جمع کردن h 60 با مقدار آکومولاتور استفاده میکند
Add A/ 60h
در آدرس دهی مستقیم، دستور با عملوند شبیه به آدرس رفتار میکند و از مقداری که در آن آدرس ذخیره شده استفاده مینماید. این دستور از آدرس دهی مستقیم برای جمع کردن مقداری که در آدرس h60 از RAM نوشته شده با محتویات آکومولاتور استفاده میکند
Add A/ [60h]
در آدرس دهی شاخصی، دستور از دادهای استفاده میکند که در آدرس حاصل از افزودنه یک مقدار به رجیسترX قرار گرفته است. آدرس دهی شاخصی برای کپی کردن یک بلاک از داده مفید میباشد. رجیستر X آدرس آغاز بلاک را در خود ذخیره مینماید. کد مقداری را به محتوای رجیستر X اضافه میکند تا آدرس بایتی که میخواهد کپی شود را به دست آورد. با افزایش این مقدار در هرکپی، کد میتواند یک بلاک داده را کپی کند
استفاده از مترجم
مترجم یک برنامه تحت داس میباشد. این دستور
cyasm test.asm
فایل test.asm را اسمبل میکند
مترجم سه فایل ایجاد میکند
test.asm که کدهای اسمبل شدهای برای استفاده در کیت ارتقا هستند، شما میتوانید از این فایل برای بارگذاری کدها از کامپیوتر بهRAM برد ارتقا استفاده کنید
در اینجا بخشی از فایل rom، هنگامی که در وایرشگر متنی باز میشود نشان داده شده است
8C
2A
2D
1E
1A
2D
A
1A
جدول 2-8: مترجم cyasm از 13 دایرکتیو پشتیبانی میکند
دایرکتیو
توضیح
CPU
مرجع خصوصیات محصول
DB
تعریف بایت
DS
تعریف یک رشته اسکی
DSU
تعریف یک رشته، unicode
DW
تعریف یک کلمه (2بایت)
DWL
تعریف یک کلمه با بعضی خصوصیات
EQU
برابری نشانهای با یک مقدار متغیر
FILLROM
تعریف مقدار برای حافظه برنامه بیاستفاده
INCLUDE
اضافه کردن یک فایل
MACRO
تعریف ماکرو
ORG
مبدأ برنامه
XPAGEON
فعال کردن XPAGE
XPAGEOFF
غیر فعال کردن XPAGE
این فایل حاوی خطوطی است که از هشت بایت هگزاسکی[5] با استفاده از فاصلهای بین هر کدام تشکیل شده است
در قالببندی هگزاسکی، هر بایت با دو کد اسکی نمایش داده میشود که هر کد یک کاراکتر هگزادسیمال را نشان میدهد. مثلاً، بایت h 80 با کدهای اسکی h 38 برای 8 و h30 برای صفر نمایش داده میشود. استفاده از قالببندی هگزاسکی شما را قادر میسازد که به راحتی در ویرایشگر متنی مقادیر بایت را ببینید (مثلاً 80). وقتی که کد در RAM برد ارتقا ذخیره شود. RAM شامل بایتهای باینری میشود که توسط بایتهای هگزاسکی نشان داده شده است. مثلاً، h 80 به 10000000 در باینری ترجمه میگردد
test.hex کدهای اسمبلی در قالببندی هگزاینتل میباشد. بسیاری از برنامهریزان EPROMها از جمله Hi-Lo شرکت سیپرس، از این قالببندی پشتیبانی میکنند. کیت ارتقاء میتواند به جای قالببندی rom. از این قالببندی استفاده کند. قالببندی هگزاینتل از کاراکترهای هگزاسکی و اطلاعات آدرس دهی استفاده میکند که در اینجا دادههایی که در یک خط فایل hex.* موجود است را میبینید
200000008099801080158124808C8099808580102D1A201E202D2A211A371600A0202737A
test.hex یک فایل لیستی است که توسط مترجم ایجاد میگردد. این فایل هر خط کد اسمبلی و توضیحات را نشان میدهد. در ادامه آنها، کدهای برنامه معادل و آدرسی که باید در آنجا ذخیره شوند نمایش داده میشود. وقتی که از برنامههای نمایشی استفاده میکنیم. این فایل لیستی، مفید است. مثلاً اگر میخواهید که در یک نقطه اجرای برنامه را ثابت کنید، میتوانید از این فایل لیستی برای پیدا کردن آدرس وابسته به آن خط استفاده کنید
ستون سمت چپ، آدرس در حافظه برنامه را مشخص میکند. این آدرس وقتی که خط، فقط شامل توضیح یا برچسب است تغییر نمیکند. دو ستون بعدی بایتهای ذخیره شده در هر آدرس میباشد. مثلاً، در محل CD03، مقدار Ah 2 کدی برای iowr و h 14 نشان دهنده رجیستری است که میخواهیم روی آن نوشته شود. ستون بعدی تعداد سیکل کلاک است که دستور استفاده میکند (5). ستونهای سمت راست نیز شامل کدهای اسمبلی و توضیحات میباشند
برنامهنویسی در C
لیست کل یادداشت های این وبلاگ
مقاله رابطه هوش عاطفی و مهارت های ارتباطی با راهبردهای مدیریت تع
مقاله انواع غنیسازی در فرآورده های ماکارونی تحت فایل ورد (word)
مقاله تبیین رابطه سرمایه اجتماعی با خلق دانش و انتقال دانش سازما
مقاله پارامترهای موثر در استخراج نیکل توسط D2EHPA با اصلاح کننده
[عناوین آرشیوشده]