برای نوشتن کد اسمبلی در بین خطوط یک برنامه زبان c در نرم افزار atmel studio باید چکار کنیم ؟
اطلاعیه
Collapse
No announcement yet.
نوشتن کد اسمبلی در زبان c در atmel studio
Collapse
X
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
نوشته اصلی توسط test001 نمایش پست هابرای نوشتن کد اسمبلی در بین خطوط یک برنامه زبان c در نرم افزار atmel studio باید چکار کنیم ؟
فکر میکنم باید به این فرمت باشه؛ حالا شما خودتم یه تستی بگیر:
asm("sei");
- تشکرها 1
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
نوشته اصلی توسط hossein.m98 نمایش پست هاسلام
فکر میکنم باید به این فرمت باشه؛ حالا شما خودتم یه تستی بگیر:
asm("sei");
برای یک دستور جواب میده ولی برای چند خط پشت سر هم باید چکار کنیم ؟
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
نوشته اصلی توسط test001 نمایش پست هاممنون
برای یک دستور جواب میده ولی برای چند خط پشت سر هم باید چکار کنیم ؟
منتظر بمونید تا اساتید بتونن بیشتر کمک کنن. البته احتمالا در help نرم افزار بتونید اطلاعاتی پیدا کنید
- تشکرها 1
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
سلام
واقعا کسی نیست راهنمایی کنه چطور باید به زبان اسمبلی داخل کد c داخل اتمل چطور باید نوشت؟
این روش های بالا همه اش اشتباهه!!!
شایدم من اشتباه کامپایل میکنم:
این کد منه:
کد:/* * 133.c * * Created: 2018-08-24 13:07:50 * Author : Mohammad */ #include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> unsigned char bcd2bin(); int main(void) { char a, b, c; DDRA = 0xFF; //DDRB = 0xFF; DDRC = 0xFF; DDRD = 0xFF; while (1) { for (a=0;a<=23;a++){ PORTC= bin2bcd (a); for (b=0;b<=59;b++){ PORTD = bin2bcd (b); for (c=0;c<=59;c++){ PORTA = bin2bcd (c); _delay_ms (1000); } } } } } unsigned char bcd2bin() { asm(ld r30,y swap r30 andi r30,0xf mov r26,r30 lsl r26 lsl r26 add r30,r26 lsl r30 ld r26,y+ andi r26,0xf add r30,r26 ret ) };
Nobody knew her nameBut she turned up just the same
There was a knock on the door
A thump on the floor
And the party turned insane
As she called out her na-a-a-ame
And then she walked in looking like dynamite
She said, "Now come along boogaloo through the night"
And by the way she's moving, well Dyna might
Might she not, with all she's got
She's got the whole town lighting up dynamite
Nobody quite knowing what to do wrong or right
But they all know Dyna is dynamite
And they're right
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
نوشته اصلی توسط msadr471 نمایش پست هاسلام
واقعا کسی نیست راهنمایی کنه چطور باید به زبان اسمبلی داخل کد c داخل اتمل چطور باید نوشت؟
این روش های بالا همه اش اشتباهه!!!
شایدم من اشتباه کامپایل میکنم:
این کد منه:
کد:/* * 133.c * * Created: 2018-08-24 13:07:50 * Author : Mohammad */ #include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> unsigned char bcd2bin(); int main(void) { char a, b, c; DDRA = 0xFF; //DDRB = 0xFF; DDRC = 0xFF; DDRD = 0xFF; while (1) { for (a=0;a<=23;a++){ PORTC= bin2bcd (a); for (b=0;b<=59;b++){ PORTD = bin2bcd (b); for (c=0;c<=59;c++){ PORTA = bin2bcd (c); _delay_ms (1000); } } } } } unsigned char bcd2bin() { asm(ld r30,y swap r30 andi r30,0xf mov r26,r30 lsl r26 lsl r26 add r30,r26 lsl r30 ld r26,y+ andi r26,0xf add r30,r26 ret ) };
دوست عزیز وقتی کاملا اشتباه عمل میکنی، چرا میگی نوشته های بالا کاملا اشتباهه؟؟؟؟
ظاهرا توجه نکردی که دستورات اسمبلی باید داخل دوتا دابل کوتیشن (از اینا"") باشه و در یک خط نوشته بشه! ضمنا برای تبدیل BCD به باینری و برعکس احتیاجی به اسمبلی نیست و با همون c میشه نوشت. از این دوتا تابع برای تبدیل مقادیر 0 تا 99 از BCD به باینری و برعکس میشه استفاده کرد:
unsigned char BCD_to_BIN(unsigned char BCD)
{
unsigned char A = ((BCD & 0xf0)>>4);
unsigned char B = (BCD & 0x0f);
unsigned char BIN= (A*10) + B;
return BIN;
}
unsigned char BIN_to_BCD(unsigned char BIN)
{
unsigned char A = (BIN / 10);
unsigned char B = (BIN % 10);
unsigned char BCD = (A<<4) | B;
return BCD;
}
- تشکرها 2
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
بله حق با شما بود من کوتیشن ها رو نذاشتم!!!
فقط شما میدونید همین چند خط کدی که فرمودین رو چطور باید به کتابخونه تبدیل کنم؟!
یه کتابخونه استاندارد برای اتمل استودیو 7؟!
خیلی لازمم میشه؟!
ممنون از راهنماییتون
باتشکرNobody knew her nameBut she turned up just the same
There was a knock on the door
A thump on the floor
And the party turned insane
As she called out her na-a-a-ame
And then she walked in looking like dynamite
She said, "Now come along boogaloo through the night"
And by the way she's moving, well Dyna might
Might she not, with all she's got
She's got the whole town lighting up dynamite
Nobody quite knowing what to do wrong or right
But they all know Dyna is dynamite
And they're right
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
نوشته اصلی توسط msadr471 نمایش پست هابله حق با شما بود من کوتیشن ها رو نذاشتم!!!
فقط شما میدونید همین چند خط کدی که فرمودین رو چطور باید به کتابخونه تبدیل کنم؟!
یه کتابخونه استاندارد برای اتمل استودیو 7؟!
خیلی لازمم میشه؟!
ممنون از راهنماییتون
باتشکر
در کل کتابخوانه چیزی جز دوتا فایل c. و h. نیست که توی فایل h تعریف توابع و ثابت ها و توی فایل c بدنه توابع قرار میگیره. حالا این وسط یکسری نکات ریز وجود داره که باید از آموزش های سطح اینترنت استفاده کنی. برای این دوتا تابع به این شکل میشه کتابخونه ساخت:
فایل h:
#ifndef _BCD_BIN_H
#define _BCD_BIN_H
unsigned char BCD_to_BIN(unsigned char BCD);
unsigned char BIN_to_BCD(unsigned char BIN);
#endif
فایل c:
#include "BCD_BIN.h"
unsigned char BCD_to_BIN(unsigned char BCD)
{
unsigned char A = ((BCD & 0xf0)>>4);
unsigned char B = (BCD & 0x0f);
unsigned char BIN= (A*10) + B;
return BIN;
}
unsigned char BIN_to_BCD(unsigned char BIN)
{
unsigned char A = (BIN / 10);
unsigned char B = (BIN % 10);
unsigned char BCD = (A<<4) | B;
return BCD;
}
فقط دقت داشته باش که فایل ها دقیقا به همون فرمت h. و c. ذخیره شده باشن.
- تشکرها 1
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
خب من توی اینترنت، البته بیشتر منابع انگلیسی میبینم میگن که برای ساخت کتابخونه برای اتمل باید یه فایل s. رو باید بسازی و کد ها رو باید داخل این فایل ذخیره کنی. یه چیزی شبیه به این موضوع ازش فهمیدم!
شما اطلاعی درباره این فایل با پسوند S دارید؟
با تشکرNobody knew her nameBut she turned up just the same
There was a knock on the door
A thump on the floor
And the party turned insane
As she called out her na-a-a-ame
And then she walked in looking like dynamite
She said, "Now come along boogaloo through the night"
And by the way she's moving, well Dyna might
Might she not, with all she's got
She's got the whole town lighting up dynamite
Nobody quite knowing what to do wrong or right
But they all know Dyna is dynamite
And they're right
دیدگاه
-
پاسخ : نوشتن کد اسمبلی در زبان c در atmel studio
نوشته اصلی توسط msadr471 نمایش پست هاخب من توی اینترنت، البته بیشتر منابع انگلیسی میبینم میگن که برای ساخت کتابخونه برای اتمل باید یه فایل s. رو باید بسازی و کد ها رو باید داخل این فایل ذخیره کنی. یه چیزی شبیه به این موضوع ازش فهمیدم!
شما اطلاعی درباره این فایل با پسوند S دارید؟
با تشکر
- تشکرها 1
دیدگاه
دیدگاه