14-01-2020, 02:25 AM
معرفی چند دستور مهم زبان اسمبلی
۲-دستور DEC
لازم به ذکر است که دو دستور بالا اثری بر روی پرچم های وضعیت ندارند.
۳-دستور SUB
۴- دستور COM
حال که با بعضی از دستورات زبان اسمبلی آشنا شدید به توضیح در مورد انواع داده در AVR و مثال هایی با دستورات گفته شده می پردازیم.
در دستور دوم علامت دلار روش دیگری برای نمایش اعداد بر مبنای ۱۶ می باشد.
۱-دستور 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 می شود.