دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Carter P.A.
سری:
ناشر:
سال نشر: 2002
تعداد صفحات: 178
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 777 کیلوبایت
در صورت تبدیل فایل کتاب PC assembly language به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب زبان مونتاژ کامپیوتر نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
هدف این کتاب این است که به خواننده درک بهتری از نحوه عملکرد کامپیوترها در سطح پایین تر از زبان های برنامه نویسی مانند پاسکال بدهد. با به دست آوردن درک عمیق تر از نحوه کار رایانه ها، خواننده اغلب می تواند در توسعه نرم افزار در زبان های سطح بالاتر مانند C و C++ بسیار سازنده تر باشد. یادگیری برنامه نویسی به زبان اسمبلی یک راه عالی برای رسیدن به این هدف است. سایر کتاب های زبان اسمبلی رایانه شخصی هنوز نحوه برنامه نویسی پردازنده 8086 را که رایانه شخصی اصلی در سال 1980 استفاده می کرد، آموزش می دهد! پردازنده 8086 فقط از حالت واقعی پشتیبانی می کرد. در این حالت، هر برنامه ای ممکن است به هر حافظه یا دستگاهی در رایانه آدرس دهی کند. این حالت برای یک سیستم عامل امن و چند وظیفه ای مناسب نیست. این کتاب در عوض نحوه برنامهریزی پردازندههای 80386 و بعد از آن را در حالت محافظت شده (حالتی که ویندوز و لینوکس در آن اجرا میشود) بحث میکند. این حالت از ویژگی های مورد انتظار سیستم عامل های مدرن مانند حافظه مجازی و حفاظت از حافظه پشتیبانی می کند. دلایل مختلفی برای استفاده از حالت محافظت شده وجود دارد: 1. برنامه نویسی در حالت محافظت شده آسان تر از حالت واقعی 8086 است که سایر کتاب ها از آن استفاده می کنند. تمام سیستم عامل های کامپیوتر مدرن در حالت محافظت شده اجرا می شوند. نرم افزار رایگان موجود است که در این حالت اجرا می شود. فقدان کتاب های درسی برای برنامه نویسی اسمبلی PC در حالت محافظت شده دلیل اصلی نگارش این کتاب است.
The purpose of this book is to give the reader a better understanding of how computers really work at a lower level than in programming languages like Pascal. By gaining a deeper understanding of how computers work, the reader can often be much more productive developing software in higher level languages such as C and C++. Learning to program in assembly language is an excellent way to achieve this goal. Other PC assembly language books still teach how to program the 8086 processor that the original PC used in 1980! The 8086 processor only supported real mode. In this mode, any program may address any memory or device in the computer. This mode is not suitable for a secure, multitasking operating system. This book instead discusses how to program the 80386 and later processors in protected mode (the mode that Windows and Linux runs in). This mode supports the features that modern operating systems expect, such as virtual memory and memory protection. There are several reasons to use protected mode:1. It is easier to program in protected mode than in the 8086 real mode that other books use.2. All modern PC operating systems run in protected mode.3. There is free software available that runs in this mode.The lack of textbooks for protected mode PC assembly programming is the main reason that the author wrote this book.
Preface......Page 7
1.1.2 Binary......Page 11
1.1.3 Hexadecimal......Page 13
1.2.1 Memory......Page 14
1.2.2 The CPU......Page 15
1.2.3 The 80x86 family of CPUs......Page 16
1.2.5 80386 32-bit registers......Page 17
1.2.6 Real Mode......Page 18
1.2.8 32-bit Protected Mode......Page 19
1.2.9 Interrupts......Page 20
1.3.2 Assembly language......Page 21
1.3.4 Basic instructions......Page 22
1.3.5 Directives......Page 23
1.3.6 Input and Output......Page 26
1.3.7 Debugging......Page 27
1.4.1 First program......Page 28
1.4.2 Compiler dependencies......Page 31
1.4.4 Compiling the C code......Page 32
1.4.6 Understanding an assembly listing file......Page 33
1.5 Skeleton File......Page 35
2.1.1 Integer representation......Page 37
2.1.2 Sign extension......Page 40
2.1.3 Two's complement arithmetic......Page 43
2.1.4 Example program......Page 45
2.1.5 Extended precision arithmetic......Page 46
2.2 Control Structures......Page 47
2.2.2 Branch instructions......Page 48
2.2.3 The loop instructions......Page 51
2.3.1 If statements......Page 52
2.4 Example: Finding Prime Numbers......Page 53
3.1.1 Logical shifts......Page 57
3.1.3 Arithmetic shifts......Page 58
3.1.5 Simple application......Page 59
3.2.2 The OR operation......Page 60
3.2.5 The TEST instruction......Page 61
3.2.6 Uses of boolean operations......Page 62
3.3.1 The bitwise operators of C......Page 63
3.3.2 Using bitwise operators in C......Page 64
3.4.1 Method one......Page 65
3.4.2 Method two......Page 66
3.4.3 Method three......Page 67
4.1 Indirect Addressing......Page 71
4.2 Simple Subprogram Example......Page 72
4.3 The Stack......Page 74
4.4 The CALL and RET Instructions......Page 75
4.5.1 Passing parameters on the stack......Page 76
4.5.2 Local variables on the stack......Page 81
4.6 Multi-Module Programs......Page 83
4.7 Interfacing Assembly with C......Page 86
4.7.1 Saving registers......Page 87
4.7.4 Calculating addresses of local variables......Page 88
4.7.6 Other calling conventions......Page 89
4.7.7 Examples......Page 91
4.7.8 Calling C functions from assembly......Page 94
4.8.1 Recursive subprograms......Page 95
4.8.2 Review of C variable storage types......Page 97
5.1.1 Defining arrays......Page 101
5.1.2 Accessing elements of arrays......Page 102
5.1.3 More advanced indirect addressing......Page 104
5.1.4 Example......Page 105
5.2.1 Reading and writing memory......Page 109
5.2.2 The REP instruction prefix......Page 110
5.2.3 Comparison string instructions......Page 111
5.2.5 Example......Page 112
6.1.1 Non-integral binary numbers......Page 119
6.1.2 IEEE floating point representation......Page 121
6.2.1 Addition......Page 124
6.2.3 Multiplication and division......Page 125
6.3.1 Hardware......Page 126
6.3.2 Instructions......Page 127
6.3.4 Quadratic formula......Page 132
6.3.5 Reading array from file......Page 135
6.3.6 Finding primes......Page 137
7.1.1 Introduction......Page 145
7.1.3 Using structures in assembly......Page 147
7.2.1 Overloading and Name Mangling......Page 148
7.2.3 Inline functions......Page 152
7.2.4 Classes......Page 155
7.2.5 Inheritance and Polymorphism......Page 161
7.2.6 Other C++ features......Page 169
A.1 Non-floating Point Instructions......Page 171
A.2 Floating Point Instructions......Page 177