زبان ماشین و برنامه سازی سیستم (مهندس داریوش نیک مهر)

زبان ماشین و برنامه سازی سیستم

مهندس داریوش نیک مهر

درس زبان ماشین و برنامه سازی سیستم (زبان اسمبلی) از دروس پایه و اساسی رشته کامپیوتر به حساب می آید که در اینجا مناسب می دونم کمی در این باره توضیح دهم:

اسمبلی یک زبان‌ برنامه‌نویسی سطح پایین است و از بالاترین سرعت نسبت به سایر زبانها برخوردار است. زیرا سایر زبانها ابتدا به اسمبلی و سپس به زبان ماشین(۰و۱) کامپایل می شوند ولی اسمبلی مستقیما به زبان ماشین کامپایل می شود. برای هر خانواده CPU یک اسمبلی وجود دارد. مثلا کد های اسمبلی Intel با AMD فرق دارد. این زبان به طور مستقیم با سخت افزار، حافظه اصلی، CPU و غیره در ارتباط است.

زبانهای برنامه‌نویسی سطح بالا علی رغم توانایی‌های زیادی که دارند همیشه برای کار با سخت افزار مناسب نیستند(به جز C که برای کار با سخت افزار از همه حتی اسمبلی بهتر است) در حالی که اسمبلی قدرت زیادی برای کار با سخت افزار دارد.

برنامه‌های نوشته‌شده به زبان اسمبلی نسبت به برنامه‌های معادل در زبانهای سطح بالا، حافظه کمتری را اشغال می‌کنند. البته این امر بستگی به انتخاب اندازه سگمنت حافظه در زمان نوشتن برنامه دارد.

برنامه‌هایی که نیاز به زمان بلادرنگ دارند در اسمبلی به خوبی نوشته می‌شوند و همچنین برنامه‌های مقیم در حافظه.در ضمن برنامه نویس با اسمبلی کارهایی می‌تواند انجام دهد که با زبانهای سطح بالا نمی‌شود آن کارها را انجام داد. از جمله دستکاری مستقیم VGA و یا RAM.

از کاربردهای دیگر زبان اسمبلی می توان به مهندسی معکوس اشاره نمود. این مورد بیشتر در مورد Decompilerها و Disassemblerها مربوط می شود.

مقدمه نویسنده

با لطف و عنایت پروردگار متعال کتاب زبان ماشین و برنامه سازی سیستم با توجه به نیاز دانشجویان دانشگاه در رشته مهندسی کامپیوتر بصورت خودآموز و با مثال های زیاد و ساده و روان تهیه گردیده است. مطالب ارائه شده با توجه به تجربیات تدریس در درس برنامه نویسی زبان اسمبلی در سالیان متمادی در دانشگاه می باشد. این کتاب در ده فصل آماده شده که هر فصل دارای اهداف فصل، تمرین و مروری بر مطالب فصل می باشد. در انتهای کتاب سوالات چهار گزینه ای و نهایتا واژه نامه گنجانده شده است.

از ویژگی های این کتاب می توان به موارد زیر اشاره نمود:

1. قرار دادن اهداف فصل، تمرین و مروری بر مطالب در هر فصل

2. قرار دادن یک فصل کامل(فصل نهم) به نحوه نوشتن برنامه ها به زبان اسمبلی و نحوه اجرای آنها با چند مثال کامل

3. قرار دادن 6 ضمیمه در این کتاب به عنوان عملگرها، کد ماشین، دستورالعمل ها، جدول کد اسکی، کد دستور العمل ها و ...

4. 168 سوال چهار گزینه ای

لینک دانلود و فهرست کامل این کتاب در ادامه مطلب ...


فصل اول: سیستم اعداد

1-1- مقادیر دودوئی(Binary)

1-2- جمع و تفریق در سیستم دوتائی

1-3- بایت (Byte)

1-4- مقادیر منفی

1-5-گروه بندی بیت ها

1-6- عملیات در سیستم شانزده تائی

1-7- عملیات در سیستم هشت تائی (Octal)

1-8- مقادیر اعشاری

فصل دوم: معماری ریزپردازنده 80286

2-1- ریز پردازنده 80286

2-2- ثبات فلگ (Flag register)

2-3- ثبات IP

2-4- صف دستورالعمل (Instruction Queue)

فصل سوم: برنامه نویسی

3-1- برنامه و دستورالعمل ها

3-2- قانون نامگذاری

3-3- متغیرها(Variables)

3-4- برچسب ها (Labels)

3-5-ثابت ها (Constants)

3-6- فیلد عملیات

3-7- فیلد عملوند

3-8- فیلد ملاحظات (Comment)

3-9- تکنیکهای آدرس دهی

فصل چهارم: دستورالعمل های اساسی

4-1- انتقال داده ها در حافظه

4-2- دستورالعمل LEA

4-3- مبادله داده ها

4-4- جمع و تفریق

4-5- ضرب دو مقدار

4-6- ضرب دو مقدار 32 بیتی بدون علامت

4-7- تقسیم دو مقدار

4-8- دستورالعمل های کاهش و افزایش

4-9- دستورالعمل محاسبه مکمل 2

فصل پنجم: انشعاب و تکرار

5-1- دستورالعمل پرش غیرشرطی

5-2- دستورالعمل های پرش شرطی

5-3- دستورالعمل مقایسه

5-4- دستورالعمل های تکرار

فصل ششم: عملیات بیتی

6-1- عملیات منطقی

6-1-1- دستور العمل NOT

6-1-2- دستور العمل AND

6-1-3- دستور العمل OR

6-1-4- دستور العمل XOR

6-1-5- دستور العمل TEST

6-2- عملیات شیفت

6-2-1- دستور العمل SHL

6-2-2- دستور العمل SHR

6-2-3- دستور العمل SAL

6-2-4- دستور العمل SAR

6-3- عملیات چرخش (Rotate)

6-3-1- دستور العمل ROL

6-3-2- دستور العمل ROR

6-3-3- دستور العمل RCL

6-3-4- دستور العمل RCR

6-4- عملیات فلگ ها

6-5- تبدیل حروف

فصل هفتم: مکروها و روال ها و وقفه ها

7-1- پشته (Stack)

7-1-1- دستور العمل PUSH

7-1-2- دستور العمل POP

7-1-3- دستور العمل PUSHF

7-1-4- دستور العمل POPF

7-2- روال (Procedures)

7-3- مکروها (Macros)

7-3-1- دیرکتیوها Macro directives

7-3-2- دستور العمل EXITM

7-3-3- دستور العمل IRP

7-3-4- دستور العمل IRPC

7-3-5- دستور العمل REPT

7-3-6- دستور العمل LOCAL

7-3-7- عملگرهای مکرو

7-3-8- عملگر &

7-4- وقفه ها (Interrupts)

7-4-1- نحوه کار وقفه ها

7-4-2- منابع وقفه ها

7-4-3- وقفه های رزرو شده (Reserved Interrupts)

7-4-4- وقفه های سیستم

7-4-5- وقفه های DOS

7-4-6- دستورالعمل های وقفه

7-4-7- فراخوانی تابع وقفه نوع 21

7-5- خواندن رشته ها

7-6- عملیات date و time

7-6-1- اندازه گیری زمان و اجرای برنامه ها

7-6-2- ایجاد تاخیر (Generating delays)

7-7- کدهای اسکی و دودویی

7-7-1 تبدیل رشته های ASCII به دودویی

فصل هشتم: عملیات پردازش رشته ها

8-1- رشته (String)

8-1-1- دستور العمل MOVS

8-1-2- دستور العمل STOS

8-1-3- دستور العمل LODS

8-1-4- دستور العمل CMPS

8-1-5- دستور العمل SCAS

فصل نهم: برنامه های نمونه

9-1- اجزای یک برنامه

9-2- یک برنامه نمونه

9-3- نحوه اجرای برنامه

9-4- برنامه های اسمبلی نوشته شده

فصل دهم: اسمبلی 80386

10-1- ریزپردازنده 80386

10-2- انواع داده ها

10-3- محاسبه آدرس موثر (Effective Address)

10-4- معماری

10-5- دستورالعمل های 80386

ضمائم:

ضمیمه 1: عملگرها (OPERATORS)

ضمیمه 2: Instruction Set Summary

ضمیمه 3: Instruction times

ضمیمه 4: کد ماشین دستورالعمل ها

ضمیمه 5: جدول کد اسکی

ضمیمه 6: کد دستورالعمل ها

سوالات چهار گزینه ای

این کتاب در399 صفحه برای شما عزیزان قرار گرفت.

حجم فایل: 2 مگابایت

پسورد فایل: www.pupuol.com

لینک دانلود مستقیم

منبع: پوپول