با سلام
من می خوام چندتا برنامه ی ساده با اسمبلی برای atmega16 بنویسم.
سوالات رو اینجا می نویسم ...ممنون می شم اگه دوستان کمک کنند...
برنامه اول:(معکوس کردن یک بایت در حافظه SRAM)
می خواهیم برای atmega16 برنامه ای بنویسیم که محتوای آدرس data در حافظه sram را به ترتیب معکوس در همان محل از حافظه بنویسد و محتوای هیچ ثبات یا حافظه دیگری را تغییر ندهد.
برنامه دوم:(خواندن و نوشتن در EEPROM و مقایسه ی اعداد و مکمل 2کردن)
می خواهیم برای ATmega16 برنامه اسمبلی بنویسیم که یک عدد هشت بیتی از آدرس INDATA در حافظه EEPROM بخواند. اگر 4بیت کم ارزشدرس تر این عدد بزرگتر از 9 است مکمل 2 عدد را در آدرس OUTDATA از حافظه EEPROM بنویسد و در غیر اینصورت جای دورقم بارزشتر و کم ارزشتر عدد را با یکدیگر عوض نموده و نتیجه حاصله را در آدرس OUTSD از حافظه SRAM ثبت نماید.
برنامه سوم:
کار با اعداد بزرگ چندبایتی:(تعیین علامت و تغییر آن)
برای ATMEGA16 می خواهیم برنامه ای بنویسیم که عدد 10بایتی ثبت شده در حافظه SRAM را که به ترتیب LSBبه MSB در این حافظه ثبت شده و آدرس بایت LSB آن LDATA است تعیین علامت نماید.اگر این عدد منفی است آن را مثبت نموده و در همان محل از حافظه ثبت نماید.
اینکه هیچ ثبات و حافظه ای تغییر نکند یعنی می تونیم رجیسترها را در stack پوش push کنیم؟
من یک الگوریتم به ذهنم رسیده ولی چون با اسمبلی آشنایی کافی ندارم به زحمت می تونم اون رو بنویسم و نمی دونم آیا اصلا درست هست یا نه...
من می خوام چندتا برنامه ی ساده با اسمبلی برای atmega16 بنویسم.
سوالات رو اینجا می نویسم ...ممنون می شم اگه دوستان کمک کنند...
برنامه اول:(معکوس کردن یک بایت در حافظه SRAM)
می خواهیم برای atmega16 برنامه ای بنویسیم که محتوای آدرس data در حافظه sram را به ترتیب معکوس در همان محل از حافظه بنویسد و محتوای هیچ ثبات یا حافظه دیگری را تغییر ندهد.
برنامه دوم:(خواندن و نوشتن در EEPROM و مقایسه ی اعداد و مکمل 2کردن)
می خواهیم برای ATmega16 برنامه اسمبلی بنویسیم که یک عدد هشت بیتی از آدرس INDATA در حافظه EEPROM بخواند. اگر 4بیت کم ارزشدرس تر این عدد بزرگتر از 9 است مکمل 2 عدد را در آدرس OUTDATA از حافظه EEPROM بنویسد و در غیر اینصورت جای دورقم بارزشتر و کم ارزشتر عدد را با یکدیگر عوض نموده و نتیجه حاصله را در آدرس OUTSD از حافظه SRAM ثبت نماید.
برنامه سوم:
کار با اعداد بزرگ چندبایتی:(تعیین علامت و تغییر آن)
برای ATMEGA16 می خواهیم برنامه ای بنویسیم که عدد 10بایتی ثبت شده در حافظه SRAM را که به ترتیب LSBبه MSB در این حافظه ثبت شده و آدرس بایت LSB آن LDATA است تعیین علامت نماید.اگر این عدد منفی است آن را مثبت نموده و در همان محل از حافظه ثبت نماید.
اینکه هیچ ثبات و حافظه ای تغییر نکند یعنی می تونیم رجیسترها را در stack پوش push کنیم؟
من یک الگوریتم به ذهنم رسیده ولی چون با اسمبلی آشنایی کافی ندارم به زحمت می تونم اون رو بنویسم و نمی دونم آیا اصلا درست هست یا نه...
دیدگاه