SlideShare a Scribd company logo
1 of 103
Download to read offline
Machine & Assembly Language
‫اسمبلی‬ ‫و‬ ‫ماشین‬ ‫زبان‬
‫خدا‬ ‫نام‬ ‫به‬
1
‫اول‬ ‫فصل‬
‫درس‬ ‫مرجع‬ ‫کتاب‬
2
‫درس‬ ‫سایت‬ ‫وب‬
3
‫اسالیدهای‬‫درس‬
 www.lecturenotes.ir
‫اخبار‬‫و‬‫اطالعیه‬‫ها‬
 Telegram Channel: @lecture_notes
‫سورس‬‫کدها‬
 www.github.com/m-nemati
‫بندی‬ ‫بارم‬
4
‫حل‬‫تمرینات‬‫کالسی‬4‫نمره‬
‫امتحان‬‫عملی‬‫پایان‬‫ترم‬4‫نمره‬
‫امتحان‬‫کتبی‬‫پایان‬‫ترم‬8‫نمره‬
‫پروژه‬‫درس‬4‫نمره‬
5
 "Low-level programming is good for the programmer's soul."
6
‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬
‫کامپیوتر‬Computer
7
‫کامپیوتر‬‫وسیله‬‫ای‬‫است‬‫که‬‫توانایی‬‫انجام‬‫محاسبات‬‫و‬‫تصمیم‬‫گیری‬‫های‬‫منطقی‬‫با‬‫سرعت‬‫میل‬‫یون‬‫ها‬‫برابر‬
‫سریعتر‬‫از‬‫یک‬‫انسان‬‫را‬‫دارد‬.
‫کامپیوتر‬ ‫به‬ ‫عملکردی‬ ‫نگاه‬
8
‫خروجی‬ ،‫پردازش‬ ،‫ورودی‬
9
‫کامپیوتر‬ ‫اجزای‬
10
‫کامپیوتر‬ ‫ای‬ ‫الیه‬ ‫ساختار‬
11
‫افزار‬ ‫سخت‬ ‫و‬ ‫افزار‬ ‫نرم‬ ،‫کاربر‬
12
‫زبان‬(Language)
13
‫مجموعه‬‫ای‬‫از‬‫عالیم‬‫و‬‫نشانه‬‫ها‬‫که‬‫بر‬‫اساس‬‫یک‬‫سری‬‫قوانین‬‫لغوی‬(Lex)،‫گرامری‬(Syntax)،‫و‬‫معنایی‬
(Semantic)،‫در‬‫کنار‬‫هم‬‫قرار‬‫می‬‫گیرند‬‫و‬‫برای‬‫ارتباط‬‫بین‬‫دو‬‫یا‬‫چند‬‫نفر‬‫استفاده‬‫می‬‫شود‬.
‫زبان‬‫فارسی‬
‫زبان‬‫انگلیسی‬
‫و‬...
‫نویسی‬ ‫برنامه‬ ‫زبان‬(Programming Language)
14
‫زبان‬‫هایی‬‫هستند‬‫که‬‫برای‬‫برقرای‬‫ارتباط‬‫بین‬‫برنامه‬‫نویسان‬‫و‬‫سیستم‬‫های‬‫کامپیوتری‬‫استف‬‫اده‬‫می‬‫شوند‬.
‫زبان‬Visual Basic
‫زبان‬C
‫زبان‬C++
‫و‬...
‫ها‬ ‫زبان‬ ‫های‬ ‫معیار‬ASPECTS OF LANGUAGES
15
‫ساختارهای‬‫ابتدایی‬(Primitive Constructs)
‫در‬‫زبان‬‫انگلیسی‬:words
‫در‬‫زبان‬‫های‬‫برنامه‬‫نویسی‬:numbers, strings, simple operators
‫ها‬ ‫زبان‬ ‫های‬ ‫معیار‬
16
‫قواعد‬‫نحوی‬(syntax)
‫ها‬ ‫زبان‬ ‫های‬ ‫معیار‬
17
‫قواعد‬‫معنایی‬‫ثابت‬(Static Semantics)
‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬ ‫بندی‬ ‫تقسیم‬
18
‫زبان‬‫ماشین‬(Machine Languages)‫یا‬‫زبان‬‫سطح‬‫پایین‬(Low Level)
‫زبان‬‫اسمبلی‬(Assembly Languages)
‫زبان‬‫های‬‫سطح‬‫باال‬(High-Level Languages)
‫سیستم‬ ‫سازی‬ ‫برنامه‬ ‫مفهوم‬(System Programming)
‫برنامه‬‫های‬‫سیستمی‬‫برنامه‬‫هایی‬‫هستند‬‫که‬‫بدون‬‫استفاده‬‫از‬‫توابع‬‫کتابخانه‬‫ای‬‫زبان‬‫با‬‫سیس‬‫تم‬‫عامل‬‫یا‬
‫سخت‬‫افزار‬‫ارتباط‬‫برقرار‬‫می‬‫کنند‬.
19
‫ماشین‬ ‫زبان‬
20
‫زبانی‬‫است‬‫که‬‫دستورات‬‫آن‬‫به‬‫سخت‬‫افزار‬‫وابسته‬‫بوده‬‫و‬‫به‬‫ازای‬‫هر‬‫دستور‬‫یک‬‫مدار‬‫سخت‬‫افزاری‬‫در‬‫داخل‬
CPU‫وجود‬‫دارد‬.‫هر‬‫کدام‬‫از‬‫دستورات‬‫زبان‬‫ماشین‬‫دارای‬‫یک‬‫کد‬‫عددی‬‫بوده‬‫که‬‫به‬‫صورت‬‫مبنای‬‫باین‬‫ری‬
‫در‬‫داخل‬‫حافظه‬‫و‬‫یا‬CPU‫قرار‬‫می‬‫گیرند‬.
‫ماشین‬ ‫زبان‬
21
‫این‬‫زبان‬‫ها‬‫به‬‫صورت‬‫مستقیم‬‫توسط‬‫کامپیوتر‬‫درک‬‫می‬‫شوند‬.‫زبان‬‫ذاتی‬‫و‬‫منحصر‬‫به‬‫فرد‬‫یک‬‫ک‬‫امپیوتر‬‫می‬
‫باشد‬‫و‬‫در‬‫هنگام‬‫طراحی‬‫سخت‬‫افزار‬‫کامپیوتر‬‫تعریف‬‫می‬‫شود‬.‫درک‬‫زبان‬‫ماشین‬‫برای‬‫انسان‬‫طاقت‬‫فرسا‬‫و‬
‫مشکل‬‫است‬.
‫اسمبلی‬ ‫زبان‬
22
‫همان‬‫زبان‬‫ماشین‬‫است‬‫ولی‬‫به‬‫جای‬‫کدهای‬‫دودویی‬‫از‬‫کلمات‬‫انگلیسی‬‫به‬‫عنوان‬‫نام‬‫دستورات‬‫است‬‫فاده‬‫می‬
‫گردد‬.‫نرم‬‫افزار‬‫اسمبلر‬‫دستورات‬‫اسمبلی‬‫را‬‫به‬‫کدهای‬‫زبان‬‫ماشین‬‫ترجمه‬‫می‬‫کند‬.
‫اسمبلی‬ ‫زبان‬
23
‫در‬‫این‬‫زبان‬‫از‬‫عبارات‬‫کوتاه‬‫زبان‬‫انگلیسی‬‫برای‬‫فهماندن‬‫عملیات‬‫مورد‬‫نظر‬‫به‬‫کامپیوتر‬‫استفاد‬‫ه‬‫شده‬‫است‬.
‫کدهای‬‫این‬‫زبان‬‫برای‬‫انسان‬‫وضوح‬‫بیشتری‬‫نسبت‬‫به‬‫قبل‬‫داشت‬‫ولی‬‫تا‬‫زمانی‬‫که‬‫به‬‫زبان‬‫ماش‬‫ین‬‫ترجمه‬
‫نشود‬‫مفهومی‬‫برای‬‫کامپیوتر‬‫ندارد‬.‫زبان‬‫اسمبلی‬‫باعث‬‫افزایش‬‫سرعت‬‫برنامه‬‫نویسی‬‫شد‬‫ولی‬‫د‬‫ر‬‫این‬‫زبان‬‫نیاز‬
‫به‬‫دستورات‬‫فراوانی‬‫برای‬‫انجام‬‫یک‬‫عمل‬‫ساده‬‫بود‬.
‫اسمبلی‬ ‫زبان‬
24
‫اغلب‬‫برنامه‬‫هایی‬‫سیستم‬‫و‬‫برنامه‬‫هایی‬‫که‬‫باید‬‫در‬‫حداقل‬‫زمان‬‫ممکن‬‫اجرا‬،‫شوند‬‫به‬‫زبان‬‫اسمبلی‬‫نوشته‬
‫می‬‫شوند‬.
‫اسمبلی‬ ‫زبان‬ ‫مزایای‬
25
‫برنامه‬‫های‬‫زبان‬‫اسمبلی‬‫نسبت‬‫به‬‫برنامه‬‫های‬‫زبان‬‫های‬‫سطح‬‫باال‬‫حافظه‬‫کمتری‬‫را‬‫اشغال‬‫می‬‫کنند‬‫و‬‫سرعت‬
‫اجرای‬‫آن‬‫ها‬‫نیز‬‫باال‬‫است‬.
‫برنامه‬‫نویس‬‫در‬‫زبان‬‫اسمبلی‬‫کارهای‬‫فوق‬‫العاده‬‫ای‬‫را‬‫می‬‫تواند‬‫انجام‬،‫دهد‬‫به‬‫طوری‬‫که‬‫بعضی‬‫از‬‫این‬‫ک‬‫ارها‬‫در‬
‫زبان‬‫های‬‫سطح‬‫باال‬‫امکان‬‫پذیر‬‫نیست‬.
‫برنامه‬‫های‬‫مقیم‬‫در‬‫حافظه‬‫به‬‫زبان‬‫اسمبلی‬‫راحت‬‫تر‬‫نوشته‬‫می‬‫شوند‬.
‫برنامه‬‫هایی‬‫که‬‫نیاز‬‫به‬‫زمان‬‫بالدرنگ‬،‫دارند‬‫در‬‫زبان‬‫اسمبلی‬‫به‬‫خوبی‬‫نوشته‬‫می‬‫شوند‬.
‫باال‬ ‫سطح‬ ‫های‬ ‫زبان‬High-Level Languages
26
‫برای‬‫افزایش‬‫سرعت‬‫برنامه‬‫نویسی‬‫زبان‬‫های‬‫سطح‬‫باال‬‫توسعه‬‫پیدا‬‫کردند‬.
Pascal،C،C++،Java‫و‬...
‫با‬‫استفاده‬‫از‬‫یک‬‫عبارت‬‫می‬‫توان‬‫وظایف‬‫و‬‫اعمال‬‫وسیع‬‫تری‬‫را‬‫انجام‬‫داد‬.
‫برنامه‬‫های‬‫مترجم‬‫وظیفه‬‫تبدیل‬‫زبان‬‫های‬‫سطح‬‫باال‬‫به‬‫زبان‬‫ماشین‬‫را‬‫دارند‬.
‫باال‬ ‫سطح‬ ‫های‬ ‫برنامه‬ ‫اجرای‬ ‫و‬ ‫ترجمه‬ ‫های‬ ‫روش‬
27
‫برای‬‫ترجمه‬‫و‬‫اجرای‬‫سورس‬‫کدهای‬‫زبان‬‫های‬‫سطح‬‫باال‬‫دو‬‫روش‬‫عمده‬‫وجود‬‫دارد‬‫که‬‫عبارتند‬‫از‬:
‫استفاده‬‫از‬‫مفسر‬(Interpreter)
‫استفاده‬‫از‬‫کامپایلر‬(Compiler)
‫مفسر‬ ‫از‬ ‫استفاده‬Interpreter
28
‫در‬‫این‬‫روش‬‫دستورالعمل‬‫های‬‫برنامه‬‫به‬‫صورت‬‫خط‬‫به‬‫خط‬‫تفسیر‬‫و‬‫اجرا‬‫می‬‫شود‬.‫این‬‫روش‬‫فایل‬‫جداگ‬‫انه‬
‫ای‬‫تولید‬‫نمی‬‫کند‬.‫این‬‫روش‬‫آهسته‬‫تر‬‫عمل‬‫می‬‫کند‬.
‫این‬‫روش‬‫مشابه‬‫عملکرد‬‫یک‬‫مترجم‬‫است‬‫که‬‫همزمان‬‫با‬‫صحبت‬،‫گوینده‬‫جمالت‬‫را‬‫به‬‫زبانی‬‫دیگ‬‫ر‬
‫ترجمه‬‫می‬‫نماید‬.‫در‬‫واقع‬‫هر‬‫جمله‬‫را‬‫جداگانه‬‫ترجمه‬‫و‬‫در‬‫اختیار‬‫شنونده‬‫قرار‬‫می‬‫دهد‬.
‫کامپایلر‬
29
‫برنامه‬‫های‬‫مترجم‬‫که‬‫وظیفه‬‫تبدیل‬‫زبان‬‫های‬‫سطح‬‫باال‬‫به‬‫زبان‬‫ماشین‬‫را‬‫بر‬‫عهده‬،‫دارند‬‫کامپایلر‬‫نامیده‬‫می‬
‫شوند‬.
‫عملکرد‬‫کامپایلر‬‫مانند‬‫دوبله‬‫یک‬‫فیلم‬‫خارجی‬‫می‬‫باشد‬‫که‬‫ابتدا‬‫کل‬‫فیلم‬‫به‬‫زبان‬‫فارسی‬‫ترجمه‬‫می‬
‫شود‬‫و‬‫سپس‬‫در‬‫اختیار‬‫بینندگان‬‫قرار‬‫می‬‫گیرد‬.‫کامپایلر‬‫نیز‬‫ابتدا‬‫زبان‬‫برنامه‬‫نویسی‬‫مب‬‫دأ‬‫را‬‫به‬‫زبان‬
‫ماشین‬‫تبدیل‬‫کرده‬‫و‬‫سپس‬‫این‬‫برنامه‬‫روی‬‫کامپیوتر‬‫اجرا‬‫می‬‫شود‬.
‫کامپایلر‬ ‫عملکرد‬ ‫نحوه‬
30
‫های‬ ‫کد‬ ‫اجرای‬ ‫و‬ ‫کامپایل‬ ‫نحوه‬C
31
‫جاوا‬ ‫های‬ ‫کد‬ ‫اجرای‬ ‫و‬ ‫کامپایل‬ ‫نحوه‬
32
‫های‬ ‫کد‬ ‫اجرای‬ ‫و‬ ‫کامپایل‬ ‫نحوه‬C#
33
34
35
‫بندی‬ ‫رتبه‬
‫نویسی‬ ‫برنامه‬ ‫های‬ ‫زبان‬
The 2017 Top Programming Languages
36
Stack over flow
37
Stack over flow
38
TIOBE
39
 The TIOBE Programming Community index
http://www.tiobe.com/
TIOBE Index for October 2017
40
TIOBE Index for October 2017
41
TIOBE Index December 2018
42
Very Long Term History
43
44
‫در‬ ‫اعداد‬ ‫نمایش‬
‫کامپیوتر‬
‫کامپیوتر‬ ‫حافظه‬ ‫در‬ ‫اطالعات‬ ‫نگهداری‬
45
‫اطالعاتی‬‫که‬‫وارد‬‫کامپیوتر‬‫می‬‫شوند‬‫ترکیبی‬‫از‬‫حروف‬A‫تا‬Z،‫ارقام‬0‫تا‬9،‫عالئمی‬‫مثل‬%،$،#‫و‬...
‫هستند‬.‫این‬‫اطالعات‬‫به‬‫روش‬‫خاصی‬‫در‬‫حافظه‬‫نگهداری‬‫می‬‫شوند‬.‫به‬‫طور‬‫کلی‬‫اطالعاتی‬‫که‬‫کامپیوت‬‫ر‬‫با‬‫آنها‬
‫سروکار‬‫دارند‬‫به‬‫دو‬‫دسته‬‫اطالعات‬‫عددی‬‫و‬‫اطالعات‬‫رشته‬‫ای‬‫تقسیم‬‫بندی‬‫می‬‫شوند‬.
‫کامپیوتر‬ ‫در‬ ‫ها‬ ‫داده‬ ‫نمایش‬
46
‫وقتی‬‫برنامه‬‫ای‬‫را‬‫به‬‫یک‬‫زبان‬‫سطح‬‫باال‬‫نظیر‬Java‫یا‬C++‫می‬‫نویسید‬‫از‬‫انواع‬‫متغییرها‬(‫مثل‬،‫صحیح‬
‫کارکتری‬‫و‬...)‫استفاده‬‫می‬‫کنید‬.‫در‬‫این‬‫زبان‬‫ها‬‫وقتی‬‫متغییرها‬‫را‬‫تعریف‬‫می‬‫کنید‬‫دیگر‬‫به‬‫فکر‬‫اینکه‬‫داده‬‫ها‬
‫چگونه‬‫در‬‫کامپیوتر‬‫نمایش‬‫داده‬‫می‬‫شوند‬‫نیستید‬.‫در‬‫زبان‬‫اسمبلی‬‫شما‬‫باید‬‫به‬‫فکر‬‫چگونگی‬‫ذ‬‫خیره‬‫داد‬‫ها‬
‫باشید‬‫و‬‫اغلب‬‫با‬‫کارتبدیل‬‫داده‬‫ها‬‫از‬‫یک‬‫نوع‬‫به‬‫نوع‬‫دیگر‬‫مواجه‬‫می‬‫باشید‬.
47
‫سیستم‬‫اعداد‬
Numbering Systems
‫گذشته‬ ‫در‬ ‫مقادیر‬ ‫نمایش‬
48
‫چوب‬ ‫از‬ ‫استفاده‬(sticks)‫برای‬‫شمارش‬
‫مقدار‬ ‫نمایش‬ ‫برای‬ ‫کاغذ‬ ‫روی‬ ‫بر‬ ‫چوب‬ ‫شکل‬ ‫رسم‬
‫نمایش‬ ‫برای‬ ‫خاص‬ ‫های‬ ‫سمبل‬ ‫از‬ ‫رومیان‬ ‫استفاده‬
‫کدبندی‬ ‫سیستمهای‬ ‫و‬ ‫اعداد‬
49
‫انسان‬‫از‬‫حساب‬‫مبنای‬10(‫دهدهی‬)‫استفاده‬‫می‬،‫کند‬‫کامپیوترها‬‫سیستم‬‫مبنای‬2(‫دودویی‬)‫را‬‫بکار‬‫می‬‫برند‬.
‫ده‬ ‫مبنای‬ ‫سیستم‬(Decimal)
50
‫برند‬ ‫می‬ ‫بکار‬ ‫را‬ ‫آن‬ ‫افراد‬ ‫اکثر‬ ‫که‬ ‫است‬ ‫متداول‬ ‫های‬ ‫سیستم‬ ‫از‬ ‫یکی‬ ‫دهدهی‬ ‫اعداد‬ ‫سیستم‬.‫سیس‬ ‫در‬‫تم‬
،‫دهدهی‬10‫از‬ ‫عبارتند‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫رقم‬:
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
‫دهند‬ ‫نمایش‬ ‫را‬ ‫مقداری‬ ‫هر‬ ‫توانند‬ ‫می‬ ‫ارقام‬ ‫این‬.‫مثال‬ ‫عنوان‬ ‫به‬:
 754
‫ده‬ ‫مبنای‬ ‫سیستم‬(Decimal)
51
‫مهم‬ ‫نکته‬
52
‫برابر‬ ‫صفر‬ ‫توان‬ ‫به‬ ‫عددی‬ ‫هر‬1‫شود‬ ‫می‬.‫شود‬ ‫می‬ ‫یک‬ ‫با‬ ‫برابر‬ ‫هم‬ ‫صفر‬ ‫توان‬ ‫به‬ ‫صفر‬ ‫مقدار‬ ‫حتی‬.
‫دو‬ ‫مبنای‬ ‫سیستم‬(Binary)
53
‫حالت‬ ‫دو‬ ‫با‬ ‫که‬ ‫کامپیوترها‬ ‫ساخت‬(‫روشن‬ ‫حالت‬‫یا‬on‫و‬‫خاموش‬ ‫حالت‬‫یا‬off)‫باشد‬ ‫می‬ ‫راحتر‬.‫روشن‬ ‫حالت‬
‫عدد‬ ‫معادل‬ ‫را‬1‫عدد‬ ‫معادل‬ ‫را‬ ‫خاموش‬ ‫حالت‬ ‫و‬‫صفر‬‫شود‬ ‫می‬ ‫گرفته‬ ‫نظر‬ ‫در‬.
 0, 1
‫متداول‬ ‫اصطالحات‬
54
 Each digit in a binary number is called a BIT,
 4 bits form a NIBBLE,
 8 bits form a BYTE,
 two bytes form a WORD,
 two words form a DOUBLE WORD (rarely used):
‫متداول‬ ‫اصطالحات‬
55
Binary System
56
‫کاراکتر‬ ‫باینری‬ ‫عدد‬ ‫هر‬ ‫انتهای‬ ‫به‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫عرفی‬b‫در‬ ‫عدد‬ ‫یک‬ ‫کند‬ ‫می‬ ‫معین‬ ‫که‬ ‫کنند‬ ‫می‬ ‫اضافه‬ ‫را‬
‫باشد‬ ‫می‬ ‫دودویی‬ ‫مبنای‬.
 101b
Binary System
57
‫دو‬ ‫مبنای‬ ‫عدد‬ ‫یک‬ ‫دهدهی‬ ‫معادل‬
58
 10100101b =165
‫مبنای‬ ‫سیستم‬16(Hexadecimal)
59
‫مبنای‬ ‫در‬‫هگزادسیمال‬،16‫از‬ ‫عبارتند‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫رقم‬:
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
‫مبنای‬10،2‫و‬16
60
Hexadecimal System
61
Hexadecimal System
62
‫مبنای‬ ‫عدد‬ ‫هر‬ ‫انتهای‬ ‫به‬ ‫رایج‬ ‫عرف‬ ‫طبق‬ ‫بر‬16‫کاراکتر‬h‫نمایند‬ ‫می‬ ‫اضافه‬ ‫را‬.‫عدد‬ ‫مثال‬ ‫عنوان‬ ‫به‬5Fh
‫مقدار‬ ‫برابر‬95‫است‬ ‫دهدهی‬ ‫مبنای‬ ‫در‬.
‫حروف‬ ‫با‬ ‫که‬ ‫دسیمالی‬ ‫هگزا‬ ‫اعداد‬ ‫ابتدای‬ ‫به‬ ‫همچنین‬A‫تا‬F‫شوند‬ ‫می‬ ‫شروع‬0‫کنند‬ ‫می‬ ‫اضافه‬ ‫را‬.‫عنوان‬ ‫به‬
‫مثال‬:0E120h
‫هگزادسیمال‬ ‫عدد‬ ‫یک‬ ‫دهدهی‬ ‫معادل‬
63
 1234h = 4660
‫دیگر‬ ‫مبناهای‬ ‫به‬ ‫دهدهی‬ ‫اعداد‬ ‫تبدیل‬
64
‫به‬‫منظور‬‫تبدیل‬‫اعداد‬‫از‬‫مبنای‬‫دهدهی‬‫به‬‫هر‬‫سیستم‬‫نمایش‬‫دیگر‬‫باید‬‫مقدار‬‫عدد‬‫دهدهی‬‫را‬‫بر‬‫مبن‬‫ای‬‫مورد‬
‫نظر‬‫تقسیمات‬‫متوالی‬‫نماییم‬.
‫مثال‬
65
‫مثال‬
66
‫عدد‬ ‫تبدیل‬ ‫با‬39‫عدد‬ ‫به‬ ‫دسیمال‬ ‫هگزا‬ ‫مبنای‬ ‫به‬ ‫دهدهی‬27h‫رسیم‬ ‫می‬.
‫مثال‬
67
‫دسیمال‬ ‫عدد‬43868‫نمایید‬ ‫تبدیل‬ ‫دسیمال‬ ‫هگزا‬ ‫مبنای‬ ‫به‬ ‫را‬.
‫جواب‬:0AB5Ch
‫شانزدهی‬ ‫شانزده‬ ‫و‬ ‫دودویی‬ ‫بین‬ ‫تبدیل‬
68
‫برای‬‫نمایش‬‫یک‬‫عدد‬‫باینری‬‫به‬‫معادل‬،‫هگزاد‬‫از‬‫سمت‬‫راست‬‫گروه‬‫های‬‫چهار‬‫بیتی‬‫را‬‫جدا‬‫کرده‬‫و‬‫هر‬‫عدد‬
‫چهار‬‫بیتی‬‫دودویی‬‫را‬‫با‬‫معادل‬‫هگزاد‬‫جایگزین‬‫کنید‬.
‫برای‬‫تبدیل‬‫از‬‫هگزادسیمال‬‫به‬،‫باینری‬‫هر‬‫رقم‬‫هگزاد‬‫را‬‫با‬‫چهار‬‫بیت‬‫دودویی‬‫معادلش‬‫جایگزین‬‫نمائ‬‫ید‬.
‫مثال‬
69
‫باینری‬ ‫سیستم‬ ‫در‬ ‫تفریق‬ ‫و‬ ‫جمع‬
70
‫جمع‬‫و‬‫تفریق‬‫در‬‫سیستم‬‫دودویی‬‫شبیه‬‫جمع‬‫و‬‫تفریق‬‫در‬‫سیستم‬‫دهدهی‬‫می‬،‫باشد‬‫با‬‫این‬‫تفاوت‬‫که‬‫به‬‫جای‬
‫ده‬‫بر‬،‫یک‬‫دو‬‫بر‬‫یک‬(Carry)‫ایجاد‬‫می‬‫شود‬.
‫باینری‬ ‫جمع‬
71
a+b ‫مجموع‬(s) ‫بیت‬‫نقلی‬(carry)
0+0 0 0
0+1 1 0
1+0 1 0
1+1 0 1
‫مثال‬
72
‫مثال‬
73
‫مثال‬
74
‫مثال‬
75
‫مثال‬
76
‫سرریز‬
77
‫باینری‬ ‫اعداد‬ ‫تفریق‬
78
A-B ‫جواب‬ ‫قرض‬
0-0 0 0
0-1 1 0
1-0 1 1
1-1 0 0
‫نکته‬:‫صفر‬ ‫از‬ ‫یک‬ ‫تفریق‬ ‫برای‬(0-1)‫باید‬‫بعد‬ ‫مرحله‬ ‫در‬ ‫و‬ ‫کرد‬ ‫کم‬ ‫دو‬ ‫یعنی‬ ‫عدد‬ ‫مبنای‬ ‫از‬ ‫را‬ ‫یک‬
‫آورد‬ ‫حساب‬ ‫به‬.
‫مثال‬
79
‫مثال‬
80
‫مثال‬
81
‫باینری‬ ‫اعداد‬ ‫تفریق‬
82
‫در‬‫کامپیوترها‬‫تفریق‬‫کننده‬‫مجزا‬‫برای‬‫تفریق‬‫دو‬‫عدد‬‫ساخته‬‫نمی‬،‫شود‬‫و‬ً‫ال‬‫معمو‬‫از‬‫همان‬‫جمع‬‫کنند‬‫ه‬‫که‬
‫برای‬‫جمع‬‫دو‬‫عدد‬‫بکار‬‫می‬،‫رود‬‫برای‬‫تفریق‬‫هم‬‫استفاده‬‫می‬‫شود‬.‫برای‬‫این‬‫منظور‬‫برای‬‫تفریق‬‫دو‬‫عد‬،‫د‬
‫مکمل‬2‫مفروق‬‫را‬‫پیدا‬‫می‬‫کنیم‬‫و‬‫با‬‫مفروق‬‫منه‬‫جمع‬‫می‬‫نماییم‬.
 A-B=A+ B ‫مکمل‬2‫عدد‬
‫مکمل‬1(Ones' complement)
83
‫برای‬‫پیدا‬‫کردن‬‫مکمل‬‫یک‬‫هر‬‫عدد‬،‫باینری‬‫بیت‬‫های‬‫آن‬‫را‬‫معکوس‬‫می‬‫نماییم‬.
‫مکمل‬2
84
‫برای‬‫پیدا‬‫کردن‬‫مکمل‬2‫هر‬‫عدد‬‫باینری‬‫کافی‬‫است‬‫به‬‫مکمل‬1‫آن‬‫عدد‬‫یک‬‫واحد‬‫اضافه‬‫نماییم‬.
‫مثال‬
85
‫مکمل‬ ‫روش‬ ‫کمک‬ ‫به‬ ‫تقریق‬ ‫قواعد‬2
86
‫مثال‬
87
‫مثال‬
88
‫مبنای‬ ‫اعداد‬ ‫جمع‬16
89
‫برای‬‫جمع‬‫اعداد‬‫هگزادسیمال‬‫از‬‫کوچکترین‬‫رقم‬‫سمت‬‫راست‬‫شروع‬‫می‬‫کنیم‬.‫اگر‬‫مجموع‬‫دو‬‫رقم‬‫کوچک‬‫تر‬‫از‬
16‫بود‬‫آن‬‫رقم‬‫را‬‫می‬،‫نویسیم‬‫و‬‫اگر‬‫بزرگتر‬‫از‬16‫بود‬‫حاصل‬‫را‬‫منهای‬16‫می‬‫نماییم‬‫و‬‫عدد‬‫هگزا‬‫دسیمال‬
‫معادل‬‫را‬‫به‬‫دست‬‫می‬‫آوریم‬‫و‬‫یک‬‫بیت‬‫نقلی‬‫برای‬‫اضافه‬‫کردن‬‫به‬‫رقم‬‫بعدی‬‫در‬‫نظر‬‫می‬‫گیریم‬.
‫مثال‬
90
‫مبنای‬ ‫اعداد‬ ‫تفریق‬16
91
‫در‬،‫تفریق‬‫اگر‬‫رقم‬‫مفروق‬‫کوچکتر‬‫از‬‫مفروق‬‫منه‬،‫باشد‬‫باقیمانده‬‫یک‬‫رقم‬‫هگزا‬‫دسیمال‬‫است‬‫که‬‫م‬‫ی‬،‫نویسیم‬
‫ولی‬‫اگر‬‫رقم‬‫مفروق‬‫بزرگتر‬‫از‬‫رقم‬‫مفروق‬‫منه‬،‫باشد‬‫عدد‬16‫را‬‫به‬‫مفروق‬‫منه‬‫اضافه‬‫می‬‫نماییم‬‫و‬‫یک‬‫بیت‬
‫نقلی‬‫از‬‫رقم‬‫بعدی‬‫قرض‬‫می‬‫گیریم‬.
‫مبنای‬ ‫اعداد‬ ‫تفریق‬16
92
‫اسکی‬ ‫کد‬(ASCII Code)
93
‫در‬‫کامپیوتر‬‫به‬،‫حروف‬،‫اعداد‬‫عالمت‬‫ها‬‫و‬‫کارکترهای‬،‫دیگر‬‫یک‬‫عدد‬‫نسبت‬‫داده‬‫می‬‫شود‬.‫برای‬‫نسبت‬‫دادن‬
‫این‬‫اعداد‬‫از‬‫الگوریتم‬‫های‬‫مختلفی‬‫استفاده‬‫گردیده‬‫است‬.‫یکی‬‫از‬‫کدهای‬‫رایج‬‫و‬‫بسیار‬‫پرکاربرد‬‫ک‬‫د‬‫استاندارد‬
‫امریکایی‬‫برای‬‫تبادل‬‫اطالعات‬(American Standard Code for Information
Interchange)‫است‬.
‫اسکی‬ ‫کد‬(ASCII Code)
94
‫کد‬‫اسکی‬‫از‬‫هفت‬‫بیت‬‫برای‬‫نمایش‬‫دادن‬‫کاراکترها‬‫استفاده‬‫می‬‫کند‬.(‫با‬‫هفت‬‫بیت‬128‫حالت‬‫مختلف‬
‫نمایش‬‫وجود‬‫دارد‬.)
ASCII Code
95
ASCII Code
96
Extended ASCII Codes
97
‫در‬‫بعضی‬‫از‬‫کامپیوترها‬‫از‬‫مجموعه‬‫کارکترهای‬‫توسعه‬‫یافته‬‫استفاده‬‫می‬‫شود‬.
Extended ASCII Codes
98
‫ابزارهای‬emu8086‫محاسبات‬ ‫برای‬
99
Base converter
100
Multi base calculator
101
Multi base calculator
102
 Binary numbers must have "b" suffix, example:
00011011b
Hexadecimal numbers must have "h" suffix, and start with a zero
when first digit is a letter (A..F), example:
0ABCDh
Octal (base 8) numbers must have "o" suffix, example:
77o
103
‫اول‬ ‫فصل‬ ‫پایان‬

More Related Content

Similar to Machine & Assembly Language - Chapter 1

Similar to Machine & Assembly Language - Chapter 1 (20)

programing.pptx
programing.pptxprograming.pptx
programing.pptx
 
پاورپوینت زبان برنامه نویسی پایتون.pptx
پاورپوینت زبان برنامه نویسی پایتون.pptxپاورپوینت زبان برنامه نویسی پایتون.pptx
پاورپوینت زبان برنامه نویسی پایتون.pptx
 
Radmanesh c#-1
Radmanesh c#-1Radmanesh c#-1
Radmanesh c#-1
 
06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
MD5
MD5MD5
MD5
 
سیستم عامل جلد اول
سیستم عامل جلد اولسیستم عامل جلد اول
سیستم عامل جلد اول
 
مفاهیم اساسی برنامه نویسی کامپیوتر
مفاهیم اساسی برنامه نویسی کامپیوترمفاهیم اساسی برنامه نویسی کامپیوتر
مفاهیم اساسی برنامه نویسی کامپیوتر
 
ورودی خروجی Hadoop
ورودی خروجی Hadoopورودی خروجی Hadoop
ورودی خروجی Hadoop
 
Soap vs restful
Soap vs  restfulSoap vs  restful
Soap vs restful
 
RESUME
RESUMERESUME
RESUME
 
RESUME
RESUMERESUME
RESUME
 
RESUME
RESUMERESUME
RESUME
 
RESUME
RESUMERESUME
RESUME
 
RESUME
RESUMERESUME
RESUME
 
Sql tuning
Sql tuningSql tuning
Sql tuning
 
زبان برنامه نویسی جولیا
زبان برنامه نویسی جولیازبان برنامه نویسی جولیا
زبان برنامه نویسی جولیا
 
RESUME
RESUMERESUME
RESUME
 
RESUME
RESUMERESUME
RESUME
 
نرم افزار3 خرداد
نرم افزار3 خردادنرم افزار3 خرداد
نرم افزار3 خرداد
 
Java how to_program 1
Java how to_program 1Java how to_program 1
Java how to_program 1
 

More from M Nemati

JavaScript
JavaScriptJavaScript
JavaScriptM Nemati
 
Introduction
IntroductionIntroduction
IntroductionM Nemati
 
Operating System - Chapter 01
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01M Nemati
 
Network security
Network securityNetwork security
Network securityM Nemati
 
Artificial Intelligence (AI)
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)M Nemati
 
Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5M Nemati
 
Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4M Nemati
 
Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3M Nemati
 
Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2M Nemati
 
IoT Course - Chapter 1
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1M Nemati
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2M Nemati
 
Java script
Java scriptJava script
Java scriptM Nemati
 
Fundamentals of programming
Fundamentals of programmingFundamentals of programming
Fundamentals of programmingM Nemati
 

More from M Nemati (20)

jQuery
jQueryjQuery
jQuery
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Bootstrap
BootstrapBootstrap
Bootstrap
 
CSS
CSSCSS
CSS
 
HTML
HTMLHTML
HTML
 
Introduction
IntroductionIntroduction
Introduction
 
Operating System - Chapter 01
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01
 
Network security
Network securityNetwork security
Network security
 
Artificial Intelligence (AI)
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)
 
Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5
 
Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4
 
Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3
 
Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2
 
IoT Course - Chapter 1
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1
 
IoT Course - Chapter 2
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2
 
J query
J queryJ query
J query
 
Java script
Java scriptJava script
Java script
 
Fundamentals of programming
Fundamentals of programmingFundamentals of programming
Fundamentals of programming
 
CSS
CSSCSS
CSS
 
HTML
HTMLHTML
HTML
 

Machine & Assembly Language - Chapter 1