**چند سوال کوتاه اســــمــبـــلی ( Assembly )**

p30ware

New Member
با سلام به همه ی دوستان عزیز ....

لظفا اگه کسی اسمبلی بلده کمک کنه
N_aggressive%20%2840%29.gif


ldi delay2seconds,6

تو این دستور اون 6 چه کاری انجام میده ؟


××××××××××××××××××××××××


ldi YL,96 ;First RAM address

در این خط YL منظور چیه و 96 چرا اولین آدرس رم هست ؟


×××××××××××××××××××××××××


ror Byte ;Rotate right the Byte register


اینجا لزوم چرخش اطلاعات چیه ؟ و اصلا چرا چرخیده ؟


×××××××××××××××××××××××××

ممنون میشم خیلی واجبه اگه کسی بلده ...
N_aggressive%20%2817%29.gif
 

the_king

مدیرکل انجمن
اینها کد های اسمبلی AVR هستند، درسته؟

ldi delay2seconds,6
تو این دستور اون 6 چه کاری انجام میده ؟
6 مقداری است که قراره درون فلان رجیستر قرار بگیره، delay2seconds قطعا در جایی از کد تعریف شده
که معادل فلان رجیستره، مثلا معادل رجیستر R16 است، در اون صورت مقدار 6 درون رجیستر R16 قرار می گیره.

ldi YL,96 ;First RAM address
در این خط YL منظور چیه و 96 چرا اولین آدرس رم هست ؟
YL نام یکی از رجیستر های اشاره گر تک بایتی (8 بیتی) است. رجیستر های X و Y و Z اشاره گر های دو بایتی
(16 بیتی) هستند که برای اشاره به آدرس ها بکار می روند. هر کدام از این X و Y و Z بصورت دو تیکه 8 بیتی
هم تقسیم شده اند که نام قسمت پایینی به L و قسمت بالایی به H ختم می شود.

اینکه 96 اولین آدرس رم باشد یا نباشد به ساختار پردازنده مورد استفاده و محتویات حافظه و کد برنامه مربوط است و
مقدار ثابتی نیست.

ror Byte ;Rotate right the Byte register
اینجا لزوم چرخش اطلاعات چیه ؟ و اصلا چرا چرخیده ؟
لزوم چرخش اطلاعات به منطق کد برنامه بستگی داره، یک سطر از کد برنامه که به تنهایی منطق خاصی رو
نشون نمی ده که دلیلش رو می پرسید.
 
بالا