Machine & Assembly Language - Chapter 1

M Nemati
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
‫اول‬ ‫فصل‬ ‫پایان‬
1 de 103

Recomendados

Cpusimulation por
CpusimulationCpusimulation
Cpusimulationdanesh_fd
261 vistas3 diapositivas
Jozve c#2 mohamady_zahedy por
Jozve c#2 mohamady_zahedyJozve c#2 mohamady_zahedy
Jozve c#2 mohamady_zahedydanesh_fd
242 vistas25 diapositivas
Mohamady zahedy c# por
Mohamady zahedy c#Mohamady zahedy c#
Mohamady zahedy c#danesh_fd
319 vistas36 diapositivas
Java programming languages por
Java programming languagesJava programming languages
Java programming languagesjavadib
305 vistas21 diapositivas
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران por
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهرانFarafekr Technology
2.2K vistas81 diapositivas
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز por
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازMobin Ranjbar
511 vistas79 diapositivas

Más contenido relacionado

Similar a Machine & Assembly Language - Chapter 1

programing.pptx por
programing.pptxprograming.pptx
programing.pptxNasratullahMirzai2
3 vistas42 diapositivas
پاورپوینت زبان برنامه نویسی پایتون.pptx por
پاورپوینت زبان برنامه نویسی پایتون.pptxپاورپوینت زبان برنامه نویسی پایتون.pptx
پاورپوینت زبان برنامه نویسی پایتون.pptxpadparsa1388
17 vistas32 diapositivas
Radmanesh c#-1 por
Radmanesh c#-1Radmanesh c#-1
Radmanesh c#-1neginrmn
364 vistas4 diapositivas
06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir por
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.iraminnezarat
96 vistas24 diapositivas
MD5 por
MD5MD5
MD5nazi asadpour
129 vistas16 diapositivas
سیستم عامل جلد اول por
سیستم عامل جلد اولسیستم عامل جلد اول
سیستم عامل جلد اولiuvmtech
71 vistas244 diapositivas

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

پاورپوینت زبان برنامه نویسی پایتون.pptx por padparsa1388
پاورپوینت زبان برنامه نویسی پایتون.pptxپاورپوینت زبان برنامه نویسی پایتون.pptx
پاورپوینت زبان برنامه نویسی پایتون.pptx
padparsa138817 vistas
Radmanesh c#-1 por neginrmn
Radmanesh c#-1Radmanesh c#-1
Radmanesh c#-1
neginrmn364 vistas
06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir por aminnezarat
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
aminnezarat96 vistas
سیستم عامل جلد اول por iuvmtech
سیستم عامل جلد اولسیستم عامل جلد اول
سیستم عامل جلد اول
iuvmtech71 vistas
مفاهیم اساسی برنامه نویسی کامپیوتر por Hossein Zahed
مفاهیم اساسی برنامه نویسی کامپیوترمفاهیم اساسی برنامه نویسی کامپیوتر
مفاهیم اساسی برنامه نویسی کامپیوتر
Hossein Zahed29 vistas
ورودی خروجی Hadoop por nasser rezaei
ورودی خروجی Hadoopورودی خروجی Hadoop
ورودی خروجی Hadoop
nasser rezaei296 vistas
زبان برنامه نویسی جولیا por YasamanKarbasi
زبان برنامه نویسی جولیازبان برنامه نویسی جولیا
زبان برنامه نویسی جولیا
YasamanKarbasi85 vistas
نرم افزار3 خرداد por mahdiehsalari
نرم افزار3 خردادنرم افزار3 خرداد
نرم افزار3 خرداد
mahdiehsalari216 vistas
Java how to_program 1 por M Nemati
Java how to_program 1Java how to_program 1
Java how to_program 1
M Nemati19 vistas

Más de M Nemati

jQuery por
jQueryjQuery
jQueryM Nemati
41 vistas49 diapositivas
JavaScript por
JavaScriptJavaScript
JavaScriptM Nemati
100 vistas91 diapositivas
Bootstrap por
BootstrapBootstrap
BootstrapM Nemati
51 vistas88 diapositivas
CSS por
CSSCSS
CSSM Nemati
38 vistas183 diapositivas
HTML por
HTMLHTML
HTMLM Nemati
46 vistas118 diapositivas
Introduction por
IntroductionIntroduction
IntroductionM Nemati
54 vistas34 diapositivas

Más de M Nemati(20)

jQuery por M Nemati
jQueryjQuery
jQuery
M Nemati41 vistas
JavaScript por M Nemati
JavaScriptJavaScript
JavaScript
M Nemati100 vistas
Bootstrap por M Nemati
BootstrapBootstrap
Bootstrap
M Nemati51 vistas
Introduction por M Nemati
IntroductionIntroduction
Introduction
M Nemati54 vistas
Operating System - Chapter 01 por M Nemati
Operating System - Chapter 01Operating System - Chapter 01
Operating System - Chapter 01
M Nemati58 vistas
Network security por M Nemati
Network securityNetwork security
Network security
M Nemati53 vistas
Artificial Intelligence (AI) por M Nemati
Artificial Intelligence (AI)Artificial Intelligence (AI)
Artificial Intelligence (AI)
M Nemati15 vistas
Machine & Assembly Language - Chapter 5 por M Nemati
Machine & Assembly Language - Chapter 5Machine & Assembly Language - Chapter 5
Machine & Assembly Language - Chapter 5
M Nemati37 vistas
Machine & Assembly Language - Chapter 4 por M Nemati
Machine & Assembly Language - Chapter 4Machine & Assembly Language - Chapter 4
Machine & Assembly Language - Chapter 4
M Nemati23 vistas
Machine & Assembly Language - Chapter 3 por M Nemati
Machine & Assembly Language - Chapter 3Machine & Assembly Language - Chapter 3
Machine & Assembly Language - Chapter 3
M Nemati13 vistas
Machine & Assembly Language - Chapter 2 por M Nemati
Machine & Assembly Language - Chapter 2Machine & Assembly Language - Chapter 2
Machine & Assembly Language - Chapter 2
M Nemati19 vistas
IoT Course - Chapter 1 por M Nemati
IoT Course -  Chapter 1IoT Course -  Chapter 1
IoT Course - Chapter 1
M Nemati20 vistas
IoT Course - Chapter 2 por M Nemati
IoT Course -  Chapter 2IoT Course -  Chapter 2
IoT Course - Chapter 2
M Nemati24 vistas
J query por M Nemati
J queryJ query
J query
M Nemati29 vistas
Java script por M Nemati
Java scriptJava script
Java script
M Nemati54 vistas
Fundamentals of programming por M Nemati
Fundamentals of programmingFundamentals of programming
Fundamentals of programming
M Nemati23 vistas

Machine & Assembly Language - Chapter 1