تحقیق مقاله اسمبلی - assembly

تعداد صفحات: 41 فرمت فایل: مشخص نشده کد فایل: 20690
سال: مشخص نشده مقطع: مشخص نشده دسته بندی: مهندسی فناوری اطلاعات IT
قیمت قدیم:۲۹,۰۰۰ تومان
قیمت: ۲۴,۸۰۰ تومان
دانلود فایل
کلمات کلیدی: N/A
  • خلاصه
  • فهرست و منابع
  • خلاصه تحقیق مقاله اسمبلی - assembly

    قسمت های تشکیل دهنده واحد پردازش مرکزی:

    1) خطوط ورودی خروجی داده ( گذرگاه مشترک) Data Bus.

    خطوط آدرس(گذرگاه آدرس) Adress Bus.

    واحد محاسبه و منطق Alu.

    واحد حافظه Memory Unit.

     

    1) کار خطوط  مشترک داده انتقال داده از بخشی به بخش دیگر است بنابراین در یک زمان واحد تمام  واحدها به خطوط مشترک داده متصل هستند ولی تمام بخش ها از اطلاعات روی آن استفاده نمی کنند.

    این خطوط مشخص می کنند که اطلاعات دقیقا از چه دستگاهی وارد یا خارج شوند این خطوط نیز به تمام واحدها متصل هستند.

    وظیفه این واحد انجام محاسبات و عملیات منطقی پایه است این اعمال منطقی  and,or,xor,not هستند و اعمال محاسبات پایه شامل تمام جمع کننده (Full Adder) و معکوس کننده (Inverter) هستند که به طور سخت افزاری در Cpu قرار دارند.

    برای اینکه 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 داشته باشد. یعنی بتوانیم به ثبات مقدار اولیه بدهیم.

    قابلیت Regist داشته باشد. یعنی بتوانیم داده ها را در آن ذخیره کنیم.

    قبلیت 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 یا ثبات داده:

    این ثبات یک ثبات عمومی است که می تواند در عمل نقل و انتقال اطلاعات و یا برخی از اعمال محاسباتی شرکت کند وظیفه اصلی این ثبات دریافت و ارسال اطلاعات است این ثبات همچنین می تواند با عنوان ثبات کمکی در کنار دیگر ثباتها قرار گیرد.

    ثبات های خاص:

    الف) ثبات های اشاره گر یا pointer:

    از ثبات های اشاره گر در آدرس دهی داده ها در بخش های مختلف حافظه استفاده می کند این ثبات ها عبارت اند از:

    ebp,eip,esp

    ebp یا base pointer یا اشاره گر پایه:

    از این ثبات 32بیتی برای آدرس دهی بخشهای مختلف حافظه و به عنوان مرکزی برای برداشت اطلاعات استفاده می کند.

    eip یا instruction pointer یا اشاره گر دستور:

    از این ثبات 32بیتی برای دسترسی به دستور العملی که هم اکنون باید اجرا گردد استفاده می شود این اشاره گر همواره به ابتدای یک بخش از حافظه که دستور العمل در آن دارد اشاره می کند بسته به نوع عمل اجرا شده eip ممکن است یک یا چند خانه افزایش یابد.

     esp یا stack pointer یا اشاره گر پشته:

    از این ثبات 32بیتی برای دسترسی به بخش حافظه موقت یا پشته در یک برنامه زبان اسمبلی استفاده می شود.

    ب) ثبات های شاخص یا index register:

    این ثبات ها عبارتند از esi,edi:

    edi یا destination index یا شاخص مقصد و esi یا source index یا شاخص مبدا:

    این ثبات های 32بیتی به صورت جفت در نقل و انتقال اطلاعات بین بخش های مختلف حافظه استفاده میشود همچنین از این دو ثبات برای ساخت آدرس استفاده می گردد محتویات این دو ثبات فقط آدرس اند نه داده.

    ج) ثبات های eflag:

    این ثبات 32 بیتی ثباتی است که وظیفه ی اعلام وضعیت داخلی cpu به استفاده کننده است و شامل شرایطی همچون وجود یا عدم وجود بیت نقلی (cary) بیت توازن(parity) بیت نقلی کمکی(auxiliary) بیت صفر(ziro) بیت علامت(sign) بیت اجرای دستورات(trap) بیت وجود وقفه(intter up) بیت جهت انتقال(direction) بیت سریز(overflow) بیت ها مربوط به کارکردن cpu در وظعیت حفاظت شده (mode protected ) می باشد.

    این بیت وجود یا عدم وجود کری در یک بیت نقلی را نشان می دهد این بیت همواره به عنوان بالاترین بیت در اعداد بی علامت از نظر ارزش است این بیت فقط برای اعداد بی علامت و فقط برای eax تعریف شده است .

    توازن(parity):

    از جزوه ی مدار منطقی

    یکی از راه های یافت خطا استفاده از بیت توازن است بیت توازن وضعیت تعداد بیت ها را مشخص می کند.

    انواع توازن:

    1) توازن فرد (odd parity):

    اگر تعداد بیت های قالب ارسال شده فرد باشد بیت توازن صفر و در غیر این صورت یک است.

    2) توازن زوج (even parity):

    اگر تعداد یک های قالب ارسالی زوج باشد بیت توازن صفر و در غیر این صورت یک خواهد شد.

    Pf(parity flag):

    این بیت وضعیت توازن اطلاعات ارسال شده یا دریافت شده را که در eax قرار گرفته را نشان می دهد. توازن به کار رفته به صورتی است که اگر تعداد یک ها فرد باشد بیت توازن یک خواهد شد (توازن زوج). علت این که cpu از توازن زوج استفاده می کند به ساختارalu  برمی گردد چرا که درalu گیت xor قرار گرفته  است.

    Af(auxiliary flag):

    این بیت وجود یا عدم وجود بیت نقلی را در محاسبه حاصل جمع بیت شماره 3از دو ثبات نشان می دهد این بیت در محاسبات bcd مورد استفاده قرار می گیرد.

    Zf(ziro flag):

    این بیت وضعیت صفر شدن همه بیت های eax را نشان می دهد به عبارت دیگر اگر بر اثر عملی چه منطقی چه محاسباتی کلیه بیت های eax صفر شود این بیت فعال خواهد شد.

    Sf(sign flag):

    در صورت استفاده از اعداد علامت دار بیت علامت در این بیت ذخیره می شود . در صورتی که عمل چرخش یا انتقال روی محتویات یک ثبات صورت پذیرد وضعیت بیت علامت در صورت تغییر آن در این بیت ذخیره می شود.

    نکته:

    در صورتی که در یک عدد علامت دار تغییر علامت ناخواسته رخ دهد حالت over flow پیش می آید. بنابراین اعداد علامت دار را نباید به صورت منطقی شیفت داد بلکه باید به صورت محاسباتی شیفت داد.

    tf(trap flag) :

    این بیت نحوه اجرای دستورات توسط cpu را نشان می دهد. به این صورت که یا دستورات طبق روال منطقی برنامه به صورت پشت سر هم و پی در پی با دادن یک بار دستور اجرا می شود و یا در حالتی هستیم که دستورات به صورت مرحله به مرحله اجرا خواهند شد یعنی با هر بار اجرای دستور فقط یک دستورالعمل اجرا خواهد شد و نتیجه ی حاصل از آن به دست خواهد آمد. اگر tf یک باشد در حالت single step (قدم به قدم یا مرحله به مرحله) و اگر صفر باشد در حالت normal (پی در پی) هستیم.

    If(interup flag) :

    برای ارتباط cpu با دنیای خارج cpu از دو حالت زیر استفاده می کند.

    Poling(سر کشی), interup(وقفه):

    در روش سرکشی برای بررسی عناصر جانبی و بررسی اعلام آمادگی این عناصر برای دریافت و ارسال اطلاعات cpu هر بار خطوط کنترلی هر یک را بررسی می کند به عبارت دیگر با سرکشی به هر یک از این عناصر آمادگی یا عدم آمادگی آن ها را بررسی می کند. در کارهای صنعتی وقتی که تعداد عناصر جانبی کم است از این روش استفاده می شود در ضمن این روش از نظر سخت افزار و نرم افراز بسیار راحت است اما یک اشکال بزرگ دارد و آن این است که cpu در هنگام سر کشی هیچ کار دیگری نمی تواند انجام دهد زیرا دائما در حال سرکشی است.

    خطوط ارتباطی بین ابزار و cpu را خطوط وقفه می گویند هر وقفه دارای یک درخواست(request) و یک پاسخ(acknowledge) می باشد.

    وقفه در cpu بر دو نوع است:

    1) وقفه قابل صرفه نظر شدن یا maskable.

    2) وقفه غیر قابل صرفه نظر شدن یا non-maskable.

    فقط یک وقفه است که غیر قابل صرفه نظر شدن است که همان وقفه nmi می باشد و به کلید reset روی سیستم متصل شده است یعنی تحت هر شرایطی cpu باید به این وقفه جواب دهد و بالاترین اولویت را دارد و مستقیما به پایه ی nmi میکروپروسسور وصل است بقیه ی وقفه که قابل صرفه نظر هستند اولویت بندی شده و در اختیار عناصر دیگر قرار می گیرند.

    اگر بیت وقفه یک باشد علامت پذیرش وقفه است و اگر صفر باشد بیانگر عدم پذیرش وقفه است(در مورد وقفه های قابل صرفه نظر شدن).

    DF (flag (direction

    این بیت وضعیت ارسال اطلاعات در صورت استفاده از روش آدرس دهی شاخص(ESI,EDI) را نشان می دهد وبسته به مقادیر مختلف داده ها را از مبدا به مقصد و یا بلعکس منتقل می کند و در صورتی که اطلاعات از مبدا به مقصد منتقل می شود DF صفر است، ESI,EDIدر آغاز در ابتدای حافظه قرار دارند و در هر بار انتقال اطلاعات ESI,EDI یک واحد اضافه می شود وقتی عمل ارسال اطلاعات به مقصد تمام می شود ESI,EDI در انتهای بخش حافظه قرار دارند در این صورت اگر لازم باشد اطلاعات دوباره به مبدا فرستاده شوند DF باید یک شود و در این صورت با هر بار ارسال اطلاعات از ESI,EDI یک واحد کم می شود. 

  • فهرست و منابع تحقیق مقاله اسمبلی - assembly

    فهرست:

    ندارد.
     

    منبع:

    ندارد.

تحقیق در مورد تحقیق مقاله اسمبلی - assembly, مقاله در مورد تحقیق مقاله اسمبلی - assembly, تحقیق دانشجویی در مورد تحقیق مقاله اسمبلی - assembly, مقاله دانشجویی در مورد تحقیق مقاله اسمبلی - assembly, تحقیق درباره تحقیق مقاله اسمبلی - assembly, مقاله درباره تحقیق مقاله اسمبلی - assembly, تحقیقات دانش آموزی در مورد تحقیق مقاله اسمبلی - assembly, مقالات دانش آموزی در مورد تحقیق مقاله اسمبلی - assembly, موضوع انشا در مورد تحقیق مقاله اسمبلی - assembly
ثبت سفارش
عنوان محصول
قیمت