سینتکس در زبان اسمبلی:
یک برنامه اسمبلی می تونه به سه بخش زیر تقسیم شه:
بخش 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
ثبات ها (Registeres) در زبان اسمبلی
عملیات انجام شــده توسط پردازنده بیشتر شامل پردازش داده هاست این داده ها
میتوانند داخل حافظه ذخیره شن و از اون جا به اونا دسترسی داشت خوندن داده و ذخیره داده ها داخل حافظه فرایند پردازنده را کند میکنه چون این کار فرآیندهای پیچیده ای برای ارسال درخواست داده از طریق باس کنترل و به
واحد ذخیره سازی حافظه و گرفتن اطلاعات از طریق همون کاناله
برای سرعت بخشیدن به عملیات پردازنده، پردازنده شامل برخی از مکان های ذخیره
سازی داخلی به نام ثبات یا رجیستر هست
رجیسترها عناصر داده را برای پردازش بدون نیاز به دسترسی به حافظه اصلی، ذخیره
میکنن تعداد ثبات ها در تراشه پردازنده محدوده
ده معماری 32 بیتی و 6 پردازنده 16 بیتی در معماری IA32- وجود دارد. ریجستر
ها به سه دسته تقسیم میشن:
1- ثبات های عمومی Registers General
2- ثبات های کنترل Registers Control
3- ثبات های سمگنت Registers Segment
حالا خود ریجستر های عمومی به سه دسته تقسیم میشن
ثبات داده Registers Data
ثبات های اشاره گر Registers Pointer
ثبات های ایندکس Registers Index
Registers Data ثبات داده
چهار رجیستر داده 32 بیتی برای عملیات محاسباتی، منطقی و سایر موارد استفاده
میشه این رجیسترهای 32 بیتی به سه روش قابل استفاده ان
به عنوان ثبات 32 بیتی کامل EAX، EBX، ECX، EDX
بخش کم ارزش از رجیسترهای 32 بیتی میتوانند به عنوان چهار رجیستر داده
16 بیتی استفاده شن AX، BX، CX و DX.
بخــش کم ارزش و پر ارزش از چهــار ثبات 16 بیتی به عنوان
هشت ثبات داده 8 بیتی استفاده شود:
AH، AL، BH، BL، CH، CL، DH و DL.
#Registers
#Assembly
عملیات انجام شــده توسط پردازنده بیشتر شامل پردازش داده هاست این داده ها
میتوانند داخل حافظه ذخیره شن و از اون جا به اونا دسترسی داشت خوندن داده و ذخیره داده ها داخل حافظه فرایند پردازنده را کند میکنه چون این کار فرآیندهای پیچیده ای برای ارسال درخواست داده از طریق باس کنترل و به
واحد ذخیره سازی حافظه و گرفتن اطلاعات از طریق همون کاناله
برای سرعت بخشیدن به عملیات پردازنده، پردازنده شامل برخی از مکان های ذخیره
سازی داخلی به نام ثبات یا رجیستر هست
رجیسترها عناصر داده را برای پردازش بدون نیاز به دسترسی به حافظه اصلی، ذخیره
میکنن تعداد ثبات ها در تراشه پردازنده محدوده
ده معماری 32 بیتی و 6 پردازنده 16 بیتی در معماری IA32- وجود دارد. ریجستر
ها به سه دسته تقسیم میشن:
1- ثبات های عمومی Registers General
2- ثبات های کنترل Registers Control
3- ثبات های سمگنت Registers Segment
حالا خود ریجستر های عمومی به سه دسته تقسیم میشن
ثبات داده Registers Data
ثبات های اشاره گر Registers Pointer
ثبات های ایندکس Registers Index
Registers Data ثبات داده
چهار رجیستر داده 32 بیتی برای عملیات محاسباتی، منطقی و سایر موارد استفاده
میشه این رجیسترهای 32 بیتی به سه روش قابل استفاده ان
به عنوان ثبات 32 بیتی کامل EAX، EBX، ECX، EDX
بخش کم ارزش از رجیسترهای 32 بیتی میتوانند به عنوان چهار رجیستر داده
16 بیتی استفاده شن AX، BX، CX و DX.
بخــش کم ارزش و پر ارزش از چهــار ثبات 16 بیتی به عنوان
هشت ثبات داده 8 بیتی استفاده شود:
AH، AL، BH، BL، CH، CL، DH و DL.
#Registers
#Assembly
👍2
خب حالا دستور mov در اسمبلی برا چی استفاده میشه برای انتقال دادن مثلا
mov ebx,2
این یعنی 2 رو بریز یا انتقالش بده تو ریجستر ebx
انتقال داده ها از یک فضای
ذخیره سازی به فضای دیگه استفاده میشه
دستور mov به پنج شکل انجام میشه:
نکته: هر دو عملوند (operand) داخل عملیات mov باید هم اندازه باشن
#mov
#operand
#assembly
#اسمبلی
این یعنی 2 رو بریز یا انتقالش بده تو ریجستر ebx
انتقال داده ها از یک فضای
ذخیره سازی به فضای دیگه استفاده میشه
دستور mov به پنج شکل انجام میشه:
mov register,register
mov register,immediate
mov memory,immediate
mov register,memory
mov memory,register
نکته: هر دو عملوند (operand) داخل عملیات mov باید هم اندازه باشن
#mov
#operand
#assembly
#اسمبلی
⚡3
ساختار شرطی در زبان اسمبلی
اجرای شرط ها به زبان اسمبلی توسط چندین دستورالعمل حلقه و branching
پرش انجام میشه این دستورالعمل ها میتونن جریان کنترل رو داخل یک برنامه
تغییر بدن اجرای شرط ها در دو سناریو مشاهده میشن مثال:
#اسمبلی
#jump_conditional
#jump_unconditional
#loop
#حلقه
اجرای شرط ها به زبان اسمبلی توسط چندین دستورالعمل حلقه و branching
پرش انجام میشه این دستورالعمل ها میتونن جریان کنترل رو داخل یک برنامه
تغییر بدن اجرای شرط ها در دو سناریو مشاهده میشن مثال:
روش غير شرطی Jump unconditional
توسط دســتورالعمل JMP انجام میشه اجرای شرط ها اغلب شامل انتقال
كنترل به آدرس دستورالعملیه كه از دستورالعمل اجرای الان پیروی
نمی کنه انتقال کنترل ممکنه رو به جلو باشه برای اجرای مجموعه
جدیدی از دستورالعمل یا قبلی اجرای دوباره همون مراحل
پرش شرطی jump Conditional#assembly
بســته به شــرایط توســط مجموعــه ای از دســتورالعمل هــای پرش j condition انجام میشه دستورالعمل های شرطی کنترل رو با
شکستن جریان پی در پی انتقال میدن و اونا رو با تغییر مقدار افست در IP انجام میدن
#اسمبلی
#jump_conditional
#jump_unconditional
#loop
#حلقه
👍7