برنامه نویسی اسمبلی برای AVR - نسخهی قابل چاپ +- تالار گفتگوی کیش تک/ kishtech forum (http://forum.kishtech.ir) +-- انجمن: پردیس فناوری کیش (http://forum.kishtech.ir/forumdisplay.php?fid=1) +--- انجمن: مهندسی الکترونیک و الکتروتکنیک (http://forum.kishtech.ir/forumdisplay.php?fid=169) +--- موضوع: برنامه نویسی اسمبلی برای AVR (/showthread.php?tid=38452) |
برنامه نویسی اسمبلی برای AVR - saedi1361 - 14-01-2020 معرفی چند دستور مهم زبان اسمبلی ۱-دستور INC
فرمت کلی این دستور اسمبلی به این شکل است : INC Rd
این دستور محتوای Rd را یک واحد افزایش می دهد.
مثال:LDI R16,0 ;R16=0
INC R16 ;R16=1
۲-دستور DEC فرمت کلی این دستور اسمبلی به این شکل است: DEC Rd
بعد از اجرای این دستور محتوای Rd یک واحد کاهش می یابد.
مثال:LDI R16,15 ;R16=15
DEC R16 ;R16=14
لازم به ذکر است که دو دستور بالا اثری بر روی پرچم های وضعیت ندارند. ۳-دستور SUB فرمت کلی این دستور اسمبلی به این شکل است : SUB Rd,Rr
این دستور مقدار Rr را از Rd کم کرده و نتیجه را در Rd می گذارد.همچنین این دستور بر روی پرچم های وضعیت اثر می گذارد.
مثال:LDI R16,60 ;R16=60
LDI R17,70 ;R16=70
SUB R17,R16 ;R17=10
۴- دستور COM فرمت کلی این دستور اسمبلی به این شکل است: COM Rd
این دستور مکمل(معکوس) Rd را محاسبه کرده و نتیجه را در Rd قرار می دهد.
مثال:LDI R16,0xAA ;R16=0xAA
COM R16 ;R16=0x55
حال که با بعضی از دستورات زبان اسمبلی آشنا شدید به توضیح در مورد انواع داده در AVR و مثال هایی با دستورات گفته شده می پردازیم. همان طور که می دانید AVR فقط داده های هشت بیتی را پشتیبانی می کند و برای پردازش داده های بیش از هشت بیت باید آنها را به اجزای ۸ بیتی خرد کنیم.داده هایی که توسط AVR استفاده می شوند می نوانند مثبت یا منفی ویا زوج و فرد باشند باشند.
اگر پرارزش ترین بیت (D7) یک باشد عدد منفی، و اگر صفر باشد عدد مثبت است.همچنین اگر کم ارزشترین بیت(D0) صفر باشد عدد زوج و اگر یک باشد عدد فرد است.
مثال: عدد مثبت و زوج ۰۱۱۱۱۰۱۰-عدد مثبت و فرد ۱۱۰۰۰۱۱۰- عدد منفی و زوج ۱۱۰۰۱۱۱۰- منفی و فرد۱۱۰۰۱۱۱۱
اعداد را به چهار فرمت دودویی، ده دهی،مبنای شانزده و اسکی می توان در برنامه نویسی اسمبلی به کار برد.به مثال زیر توجه کنید:LDI R16,0x30
LDI R16,$30
LDI R16,48
LDI R16,0B00110000
'LDI R16,'0
در دستور دوم علامت دلار روش دیگری برای نمایش اعداد بر مبنای ۱۶ می باشد. در دستور سوم فرمت دهدهی و در دستور چهارم فرمت باینری ۰x30نوشته شده.
در دستور آخر کد اسکی عدد صفر که همان عدد ۰x30 است در ثبات R16 قرار می گیرد چون داخل علامت نقل قول قرار گرفته.پس در هر ۵ دستور یک مقدار مشابه وارد ثبات R16 می شود.
|