کتاب The Art of ARM Assembly, Volume 1: 64-Bit ARM Machine Organization and Programming (هنر اسمبلی ARM، جلد اول: سازماندهی و برنامهنویسی ماشین 64 بیتی ARM) یک راهنمای جامع برای علاقهمندان به برنامهنویسی سطح پایین و کسانی است که میخواهند درک عمیقی از نحوه کار پردازندههای ARM به دست آورند. این کتاب با شروع از مفاهیم پایه زبان اسمبلی ARM، به تدریج به سمت مباحث پیشرفتهتر حرکت میکند و به شما این امکان را میدهد تا برنامههای پیچیدهتری بنویسید.
در ادامه مقدمهای از کتاب The Art of ARM Assembly را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب The Art of ARM Assembly:
خوش آمدید به هنر اسمبلی ARM
این کتاب به شما نحوه برنامهنویسی بر روی پردازندههای 64 بیتی ARM را آموزش میدهد، مانند پردازندههایی که در دستگاههای مدرن macOS اپل، سیستمهای لینوکس مبتنی بر ARM (از جمله رزبری پای با نسخه 64 بیتی سیستم عامل رزبری پای، که قبلاً با نام Raspbian شناخته میشد و من فقط آن را Pi OS مینامم) و حتی دستگاههای تلفن همراه مانند آیفون، آیپد و برخی دستگاههای اندرویدی یافت میشوند.
با ورود سیستمهای macOS مبتنی بر ARM اپل، نیاز به یادگیری و درک زبان اسمبلی 64 بیتی ARM به شدت افزایش یافت و من را به نوشتن این کتاب سوق داد. با این حال، من کد منبع و سایر اطلاعات موجود در این کتاب را تا حد امکان قابل حمل ساختهام تا برای همه دستگاههای 64 بیتی ARM قابل استفاده باشد.
کتاب The Art of ARM Assembly، جلد خواهر کتاب هنر اسمبلی 64 بیتی است که خود بازنویسی کتاب هنر برنامهنویسی زبان اسمبلی (AoA) بود. AoA پروژهای بود که من در سال 1989 به عنوان ابزاری برای آموزش برنامهنویسی زبان اسمبلی 80×86 (x86) به دانشجویان دانشگاه پلیتکنیک ایالتی کالیفرنیا، پومونا و دانشگاه کالیفرنیا، ریورساید آغاز کردم. برای بیش از 25 سال، AoA به عنوان راهنمایی برای یادگیری برنامهنویسی زبان اسمبلی x86 عمل کرد.
در طول این مدت، پردازندههای دیگری آمدند و رفتند، اما x86 در رایانههای شخصی و ایستگاههای کاری سطح بالا همچنان پادشاه بود و زبان اسمبلی x86 همچنان زبان اسمبلی پیشفرض برای یادگیری باقی ماند. با این حال، رایانههای شخصی مبتنی بر ARM با معرفی سیستمهای مبتنی بر اپل M1 (و بعداً دستگاههای اپل) به جریان اصلی تبدیل شدند، بنابراین نیاز به یادگیری برنامهنویسی زبان اسمبلی ARM در حال افزایش است.
کتاب The Art of ARM Assembly با استفاده از هنر اسمبلی 64 بیتی به عنوان الگویی برای مطالب مورد پوشش نوشته شده است. هر کسی که کتابهای قبلی مرا خوانده باشد، این کتاب را در سطح بالایی بسیار آشنا خواهد یافت. البته، دستورالعملهای ARM و اسمبلرها – چه اسمبلر GNU (Gas) یا اسمبلر Clang اپل (تا حد زیادی با Gas سازگار است) – کاملاً متفاوت از دستورالعملهای x86 و اسمبلر ماکرو مایکروسافت (MASM) هستند. بنابراین، تکنیکهای ارائه و برنامهنویسی سطح پایین نیز تا حدودی متفاوت هستند.
سازماندهی کتاب The Art of ARM Assembly
این کتاب به چهار بخش شامل 16 فصل و 6 ضمیمه سازماندهی شده است.
بخش اول کتاب The Art of ARM Assembly، سازماندهی ماشین، انواع دادهها و معماری ماشین برای پردازنده ARM را پوشش میدهد:
- فصل 1: سلام، دنیای زبان اسمبلی: به شما تعداد کمی دستورالعمل آموزش میدهد تا بتوانید با ابزارهای توسعه نرمافزار آزمایش کنید و برنامههای کوچک سادهای بنویسید.
- فصل 2: نمایش و عملیات داده: در مورد نمایش داخلی انواع دادههای ساده مانند اعداد صحیح، کاراکترها و مقادیر بولی بحث میکند. همچنین عملیاتهای مختلف حسابی و منطقی ممکن بر روی این انواع دادهها را مورد بحث قرار میدهد. این فصل از کتاب The Art of ARM Assembly همچنین برخی از قالبهای عملوندهای اولیه زبان اسمبلی ARM را معرفی میکند.
- فصل 3: دسترسی به حافظه و سازماندهی آن: نحوه سازماندهی حافظه اصلی توسط ARM را مورد بحث قرار میدهد. این فصل چیدمان حافظه و نحوه اعلام و دسترسی به متغیرهای حافظه را توضیح میدهد. همچنین روشهای ARM برای دسترسی به حافظه و پشته (مکانی برای ذخیره مقادیر موقت) را معرفی میکند.
- فصل 4: ثابتها، متغیرها و انواع دادهها: نحوه اعلام ثابتهای نامگذاریشده در زبان اسمبلی، نحوه اعلام و استفاده از اشارهها و استفاده از ساختارهای داده مرکب مانند رشتهها، آرایهها، ساختارها (رکوردها) و اتحادیهها را شرح میدهد.
بخش دوم کتاب The Art of ARM Assembly، زبان اسمبلی پایه، ابزارها و دستورالعملهای اولیه مورد نیاز برای نوشتن برنامههای زبان اسمبلی را ارائه میدهد.
- فصل 5: رویهها: دستورالعملها و نحو مورد نیاز برای نوشتن توابع (رویهها) زبان اسمبلی خود را پوشش میدهد. این فصل نحوه ارسال آرگومانها (پارامترها) به توابع و بازگرداندن نتایج تابع را توضیح میدهد. همچنین نحوه اعلام (و استفاده) متغیرهای محلی یا خودکار که شما بر روی پشته تخصیص میدهید را شرح میدهد.
- فصل 6: محاسبات: عملیاتهای حسابی و منطقی اولیه عدد صحیح در زبان اسمبلی ARM را توضیح میدهد. همچنین نحوه تبدیل عبارات حسابی از HLL به زبان اسمبلی ARM را شرح میدهد. سرانجام، این فصل از کتاب The Art of ARM Assembly محاسبات اعشاری با استفاده از دستورالعملهای اعشاری مبتنی بر سختافزار را پوشش میدهد.
- فصل 7: ساختارهای کنترلی سطح پایین: نحوه پیادهسازی ساختارهای کنترلی مانند if، elseif، else، while، do…while (repeat…until)، for و switch در زبان اسمبلی ARM را شرح میدهد. این فصل همچنین به بهینهسازی حلقهها و کدهای دیگر در زبان اسمبلی میپردازد.
بخش سوم کتاب The Art of ARM Assembly، زبان اسمبلی پیشرفته، عملیاتهای پیشرفتهتر زبان اسمبلی را پوشش میدهد.
- فصل 8: محاسبات پیشرفته: محاسبات دقت گسترده، محاسبات حالت مختلط و سایر عملیاتهای حسابی پیشرفته را بررسی میکند.
- فصل 9: تبدیل عددی: مجموعهای بسیار مفید از توابع کتابخانهای را ارائه میدهد که میتوانید برای تبدیل مقادیر عددی به قالب رشته و تبدیل مقادیر رشتهای به قالب عددی استفاده کنید.
- فصل 10: جستجوی جدول: نحوه استفاده از جداول جستجوی مبتنی بر حافظه (آرایهها) برای سرعت بخشیدن به محاسبات خاص را شرح میدهد.
- فصل 11: برنامهنویسی Neon و SIMD: مجموعه دستورالعملهای پیشرفته SIMD ARM را مورد بحث قرار میدهد که به شما امکان میدهد با پردازش همزمان چندین قطعه داده، برخی از برنامهها را سرعت بخشید.
- فصل 12: دستکاری بیت: عملیاتها و توابع مختلفی را شرح میدهد که به شما امکان میدهد در زبان اسمبلی ARM در سطح بیت با دادهها دستکاری کنید.
- فصل 13: ماکروها و زبان زمان کامپایل Gas: امکانات ماکرو Gas را پوشش میدهد. ماکروها سازههای قدرتمندی هستند که به شما امکان میدهند عبارات زبان اسمبلی خود را طراحی کنید که به تعداد زیادی از دستورالعملهای زبان اسمبلی ARM منفرد گسترش مییابند.
- فصل 14: عملیات رشتهای: استفاده و ایجاد توابع مختلف کتابخانه رشتههای کاراکتر در زبان اسمبلی ARM را توضیح میدهد.
- فصل 15: مدیریت پروژههای پیچیده: نحوه ایجاد کتابخانههای کد زبان اسمبلی و ساخت آن کتابخانهها با استفاده از فایلهای make (به همراه بحث در مورد زبان make) را شرح میدهد.
- فصل 16: برنامههای مستقل زبان اسمبلی: نحوه نوشتن برنامههای کاربردی زبان اسمبلی را نشان میدهد که از کتابخانه استاندارد C/C++ برای ورودی/خروجی و سایر عملیات استفاده نمیکنند. این فصل شامل مثالهای فراخوانی سیستم برای هر دو لینوکس (Pi OS) و macOS است.
بخش چهارم کتاب The Art of ARM Assembly، مواد مرجع، اطلاعات مرجع را شامل میشود، از جمله جدولی که مجموعه کامل کاراکترهای ASCII را فهرست میکند، واژهنامه، دستورالعملهایی برای نصب و استفاده از Gas در سیستم شما، مقدمهای بر مفسر پوسته bash، توابع C/C++ مفیدی که میتوانید از برنامههای زبان اسمبلی خود فراخوانی کنید و پاسخ به سؤالات در پایان هر فصل.
سرفصلهای کتاب The Art of ARM Assembly:
- Title Page
- Copyright
- Dedication
- About the Author and Technical Reviewer
- Acknowledgments
- Introduction
- Part I: Machine Organization
- 1. Hello, World of Assembly Language
- 2. Data Representation and Operations
- 3. Memory Access and Organization
- 4. Constants, Variables, and Data Types
- Part II: Basic Assembly Language
- 5. Procedures
- 6. Arithmetic
- 7. Low-Level Control Structures
- Part III: Advanced Assembly Language
- 8. Advanced Arithmetic
- 9. Numeric Conversion
- 10. Table Lookups
- 11. Neon and SIMD Programming
- 12. Bit Manipulation
- 13. Macros and the Gas Compile-Time Language
- 14. String Operations
- 15. Managing Complex Projects
- 16. Stand-Alone Assembly Language Programs
- Part IV: Reference Materials
- A. The ASCII Character Set
- B. Glossary
- C. Installing and Using Gas
- D. The Bash Shell Interpreter
- E. Useful C Language Functions
- F. Answers to Questions
- Index
جهت دانلود کتاب The Art of ARM Assembly میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.