آشنایی با زبان اسمبلی
دسته بندي :
فنی و مهندسی »
کامپیوتر و IT
قسمت های تشکیل دهنده واحد پردازش مرکزی:
1) خطوط ورودی خروجی داده ( گذرگاه مشترک) Data Bus.
2) خطوط آدرس(گذرگاه آدرس) Adress Bus.
3) واحد محاسبه و منطق Alu.
4) واحد حافظه Memory Unit.
1) کار خطوط مشترک داده انتقال داده از بخشی به بخش دیگر است بنابراین در یک زمان واحد تمام واحدها به خطوط مشترک داده متصل هستند ولی تمام بخش ها از اطلاعات روی آن استفاده نمی کنند.
1) این خطوط مشخص می کنند که اطلاعات دقیقا از چه دستگاهی وارد یا خارج شوند این خطوط نیز به تمام واحدها متصل هستند.
2) وظیفه این واحد انجام محاسبات و عملیات منطقی پایه است این اعمال منطقی and,or,xor,not هستند و اعمال محاسبات پایه شامل تمام جمع کننده (Full Adder) و معکوس کننده (Inverter) هستند که به طور سخت افزاری در Cpu قرار دارند.
3) برای اینکه Cpu بتواند کاری انجام دهد باید اطلاعات خود را در جایی ذخیره کند این کار را واحد حافظه در Cpu انجام می هد و داده های مورد نیاز Cpu را به طور موقت در خود ذخیره می کند و واحد آن ثبات یا Register است .
نکته:
تعداد آدرس = دو به توان تعداد خطوط آدرس
خانواده های Cpu هایی که در PC مورد استفاده قرار می گیرند عبارتند از:
خانواده های X86
8086: PC XT,JR A:20bit D:16bit
8088: PC XT,JR A:20bit D:8bit
80286: PC AT A:24bit D:16bit
80386: PC AT A:24bit D:16bit
80486: PC AT A:24bit D:32bit
80586: PC AT A:24bit D:64bit
در 80286 از تکنولوژی ISA استفاده می کنند در 80386 از تکنولوژی EISA استفاده می کنند در 80486 از تکنولوژی EISA,VESA استفاده می کنند در 80586 از تکنولوژی PCI استفاده می کنند .
تکنولوژی جدیدی که در X586 استفاده می شود تکنولوژی AGP نامیده می شود.
ثبات یا Register:
محلی است که در CPU قرار دارد و اطلاعات را به طور موقت در خود ذخیره می کند ثبات از سلول های حافظه به نام فلیپ فلاپ (flipflap) تشکیل شده است یک فلیپ فلاپ می تواند دارای مقدادیر صفر یا یک باشد یعنی کار یک بیت را انجام میدهد.
خواص ثبات:
1) قابلیت Load داشته باشد. یعنی بتوانیم به ثبات مقدار اولیه بدهیم.
2) قابلیت Regist داشته باشد. یعنی بتوانیم داده ها را در آن ذخیره کنیم.
3) قبلیت Change داشته باشد. یعنی بتوانیم مقدار آن را تغییر بدهیم این تغییرات عبارتند از:
الف) بتواند setشود. یعنی تمام بیت هایش به یک تبدیل شود.
ب) بتواند clear شود . یعنی تمام بیت هایش به صفر تبدیل شود.
ج) بتواند complement شود. یعنی بتواند یک واحد از آن کم شود.
د) بتواند incerement شود. یعنی بتواند یک واحد به آن اضافه شود.
ه) بتواند shift شود. یعنی قابلیت انتقال داشته باشد.
انواع ثبات:
1) ثبات های عمومی (general- pwpose register).
2) ثبات های خاص (special-pwpose register).
ثبات های عمومی ثبات هایی هستند که برای آن ها کار خاصی در نظر نمی گیریم و در همه ی کار های cpu قرار می گیرند. این ثبات ها قابلیت و توانایی تمام ثبات های دیگر را نیز دارد و می توان به جای هم مورد استفاده قرار گیرند.
ثبات های خاص ثبات هایی هستند که یک کاربر با وظیفه ی خاص دارند یعنی بسته به نوع کاری که انجام می دهیم ممکن است اجازه استفاده از آن ثبات را داشته باشیم یا خیر . ثبات های این خانواده دارای وضعیت بحرانی (critical) می باشند.
انواع ثبات های عمومی:
8bit: AL,AH,BL,BH,CL,CH,DL,DH
16bit: AX,BX,CX,DX
32bit: EAX,EBX,ECX,DX
eax یا accumulator یا ثبات انباره:
این ثباتی همه کاره است یعنی تمام دستور العمل هایی که درزبان اسمبلی داریم روی این ثبات می تواند انجام شود eax تنها ثباتی است که با فضای بیرون از cpu ارتباط مستقیم دارد و به طور مستقیم به خطوط داده متصل است پس eax می تواند به طور مستقیم اطلاعات را بگیرد یا به طور مستقیم اطلاعات را بفرستد. مبدا و مقصد بسیاری از دستورات اسمبلی این ثبات است.
ثبات ebx یا base register یا ثبات پایه:
این ثبات امکان انجام برخی از محاسبات را دارد و در نقل و انتقال اطلاعات شرکت می کند مهمترین وظیفه ی آن این است که نقش مرکز پایه را برای دسترسی به بخش یا بخش هایی خاص از سیستم فراهم کند.
ثبات ecx یا conter register یا ثبات شمارنده:
یک ثبات عمومی است که می تواند در عمل نقل و انتقال اطلاعات و یا برخی اعمال محاسباتی شرکت کند و از آنجایی که توانایی انجام اعمال شمارشی را دارد به آن ثبات شمارنده می گویند هر جا در اسمبلی به شمارنده نیاز داشته باشیم از این ثبات استفاده می کنیم.
ثبات edx یا ثبات data regisret یا ثبات داده:
این ثبات یک ثبات عمومی است که می تواند در عمل نقل و انتقال اطلاعات و یا برخی از اعمال محاسباتی شرکت کند وظیفه اصلی این ثبات دریافت و ارسال اطلاعات است این ثبات همچنین می تواند با عنوان ثبات کمکی در کنار دیگر ثباتها قرار گیرد.