سینتکس در زبان اسمبلی:
یک برنامه اسمبلی می تونه به سه بخش زیر تقسیم شه:
بخش data این بخش برای اعلام داده ها های اولیه یا ثابت استفاده میشه این داده در زمان اجرا تغییر نمیکنه سینتکس به صورت زیره
section.data
بخش bss این بخش برای اعلام متغیر ها استفاده میشه سینتکس به سورت زیره
section.bss
بخش tetx این بخش برای نگه داشتن کد اصلی استفاده میشه این بخش با اعلام متغیر سراسری _start شروع میشه که به هسته (core ) میگه که اجرای برنامه از کجا باید شروع بشه سینتکس به صورت زیره
section.text
section_start
:start_
کامنت ها در زبان اسمبلی با (;) شروع میشن
مثال
This program a good;
برنامه های نوشته شده با زبان اسمبلی به سه دستور تقسیم میشن:
دستورالعمل اجرایی: یا دستور العمل های ساده
به پردازنده (CPU) میگن چه کاری انجام بده
هر دستورالعمل شامل یک نوع کد عملیاتیه که
بهش میگن opcode هر دستورالعمل اجرایی
یک دستورالعمل زبان ماشین تولید میکنه
دستورالعمل های اسمبلر:
در مورد جنبه ها مختلف روند مونتاژ به اسمبلر میگن که این دستورات غیر قابل اجران و دستورالعمل زبان ماشین تولید نمی کنن
ماکروها:
ماکروها اساسا مکانیسم جایگزینی متن هستن
هر کدام از دســتورات زبان اســمبلی در یک
سطر جدا نوشته میشن همه ی اون ها از قالب زیر استفاده میکنن
[lable] mnemonic operands
[comment]
یک دستورالعمل شامل دو بخش هست یکی قسمت اول نام دستورالعمل mnemonic که قراره اجرا بشه و دومی ان عملوند ها operands یا پارامتر های دستور هستن
#syntax
#command
#Assembly
#CPU
یک برنامه اسمبلی می تونه به سه بخش زیر تقسیم شه:
بخش data این بخش برای اعلام داده ها های اولیه یا ثابت استفاده میشه این داده در زمان اجرا تغییر نمیکنه سینتکس به صورت زیره
section.data
بخش bss این بخش برای اعلام متغیر ها استفاده میشه سینتکس به سورت زیره
section.bss
بخش tetx این بخش برای نگه داشتن کد اصلی استفاده میشه این بخش با اعلام متغیر سراسری _start شروع میشه که به هسته (core ) میگه که اجرای برنامه از کجا باید شروع بشه سینتکس به صورت زیره
section.text
section_start
:start_
کامنت ها در زبان اسمبلی با (;) شروع میشن
مثال
This program a good;
برنامه های نوشته شده با زبان اسمبلی به سه دستور تقسیم میشن:
دستورالعمل اجرایی: یا دستور العمل های ساده
به پردازنده (CPU) میگن چه کاری انجام بده
هر دستورالعمل شامل یک نوع کد عملیاتیه که
بهش میگن opcode هر دستورالعمل اجرایی
یک دستورالعمل زبان ماشین تولید میکنه
دستورالعمل های اسمبلر:
در مورد جنبه ها مختلف روند مونتاژ به اسمبلر میگن که این دستورات غیر قابل اجران و دستورالعمل زبان ماشین تولید نمی کنن
ماکروها:
ماکروها اساسا مکانیسم جایگزینی متن هستن
هر کدام از دســتورات زبان اســمبلی در یک
سطر جدا نوشته میشن همه ی اون ها از قالب زیر استفاده میکنن
[lable] mnemonic operands
[comment]
یک دستورالعمل شامل دو بخش هست یکی قسمت اول نام دستورالعمل mnemonic که قراره اجرا بشه و دومی ان عملوند ها operands یا پارامتر های دستور هستن
#syntax
#command
#Assembly
#CPU
👍2
دستورالعمل AND
برای پشتیبانی از عبارات منطقی با انجام عملکرد بیتی و AND
اســتفاده میشه اگر بیت های که با هم مچ یعنی بیت هایی که با هم مطابق دارن از هر دو عملوند 1 باشنعملکرد AND
بیتی 1 رو برمی گردونه در غیر این صورت مقدار 0 برمی گرده مثال:
Operand1: 0101
Operand2: 0011
After AND -> Operand1: 0001
نکته:از روش AND میتونیم برای صفر کردن یک یا چند بیت اســتفاده کنیم
#and
#command
#operand
برای پشتیبانی از عبارات منطقی با انجام عملکرد بیتی و AND
اســتفاده میشه اگر بیت های که با هم مچ یعنی بیت هایی که با هم مطابق دارن از هر دو عملوند 1 باشنعملکرد AND
بیتی 1 رو برمی گردونه در غیر این صورت مقدار 0 برمی گرده مثال:
Operand1: 0101
Operand2: 0011
After AND -> Operand1: 0001
نکته:از روش AND میتونیم برای صفر کردن یک یا چند بیت اســتفاده کنیم
#and
#command
#operand
👍2
دستورالعمل OR
برای پشتیبانی از عبارت های منطقی، با انجام عمل بیتی OR استفاده میشه اگر بیت های مچینگ از هر یک یا هر دو عملوند یکی
باشه عملگر OR بیتی 1 رو برمیگردونه اگر هر دو بیت صفر باشن 0 برمی گرده مثال:
نکته:از OR میتونیم برای تنظیم یک یا چند بیت استفاده کنیم
#or
#command
#operand
برای پشتیبانی از عبارت های منطقی، با انجام عمل بیتی OR استفاده میشه اگر بیت های مچینگ از هر یک یا هر دو عملوند یکی
باشه عملگر OR بیتی 1 رو برمیگردونه اگر هر دو بیت صفر باشن 0 برمی گرده مثال:
Operand1: 0101
Operand2: 0011
After OR -> Operand1: 0111
#or
#command
#operand
👍5
دستورالعمل XOR
عملیات XOR بیتی را اجرا میکند عملیات XOR مقدار بیت حاصل رو به یک تنظیم میکنه و فقط اگر بیت های مربوط به عملوند Operand متفاوت باشن اگر بیت های مربوط به عملوند ها یکسان باشن هر دو صفر میشن یا هر دو یک بیت حاصل 0 میشه مثال:
Operand1: 0101
Operand2: 0011
After XOR -> Operand1 0110
نکته: XOR کردن یک عملوند به خودی خود عملوند را به 0 تغییر میده این برای پاک
کردن یک رجیستر استفاده میشه
XOR EAX,EAX
#xor
#command
#operand
عملیات XOR بیتی را اجرا میکند عملیات XOR مقدار بیت حاصل رو به یک تنظیم میکنه و فقط اگر بیت های مربوط به عملوند Operand متفاوت باشن اگر بیت های مربوط به عملوند ها یکسان باشن هر دو صفر میشن یا هر دو یک بیت حاصل 0 میشه مثال:
Operand1: 0101
Operand2: 0011
After XOR -> Operand1 0110
نکته: XOR کردن یک عملوند به خودی خود عملوند را به 0 تغییر میده این برای پاک
کردن یک رجیستر استفاده میشه
XOR EAX,EAX
#xor
#command
#operand
👍5
دستورالعمل CMP
دو عملوند رو مقایســه میکنه معمولا در اجرای شرطی مورد اســتفاده قرار میگیره این دستورالعمل اساسا برای مقایسه این که آیا عملوند برابره یا نه یک عملوند رو از عملوند دیگه کم میکنه که باعث اختلال در عملوند های منبع یا مقصد نمیشه از اون به همراه دستورالعمل پرش شرطی برای تصمیم گیری استفاده میشه مثال CMP:
خب حالا CMP چکار میکنه دو فیلد داده عددی رو مقایسه میکنه عملوند مقصد میتونه در ثبات یا در حافظه باشه عملوند منبع میتونه یک داده ثابت فوری ثبات یا حافظه باشه بیش تر برای مقایسه این که یک مقدار شمارنده به تعداد دفعاتی که یک حلقه برای اجرا نیاز داره رسیده استفاده میشه
#cmp
#command
#operand
دو عملوند رو مقایســه میکنه معمولا در اجرای شرطی مورد اســتفاده قرار میگیره این دستورالعمل اساسا برای مقایسه این که آیا عملوند برابره یا نه یک عملوند رو از عملوند دیگه کم میکنه که باعث اختلال در عملوند های منبع یا مقصد نمیشه از اون به همراه دستورالعمل پرش شرطی برای تصمیم گیری استفاده میشه مثال CMP:
CMP operand1,operand2Operand1 = 10
Operand2 = 20
CMP 10,5خب حالا CMP چکار میکنه دو فیلد داده عددی رو مقایسه میکنه عملوند مقصد میتونه در ثبات یا در حافظه باشه عملوند منبع میتونه یک داده ثابت فوری ثبات یا حافظه باشه بیش تر برای مقایسه این که یک مقدار شمارنده به تعداد دفعاتی که یک حلقه برای اجرا نیاز داره رسیده استفاده میشه
#cmp
#command
#operand
👍15🔥1