Programming the Intel x64 Microprocessor in Linux
John Schwartzman

#Assembly_Language
#Microprocessor
#Linux
#Intelx64
#BIOS
#uname
#commaSeparate
#hhmmss
💻 یادگیری Assembly شاید سرعت کدنویسیات را بیشتر نکند؛ اما قطعاً تو را برنامهنویس بهتری میکند
🧠 یاد گرفتن Assembly Language قرار نیست باعث بشه سریعتر کد بزنی یا برنامههای Portable و «یکبار بنویس، همهجا اجرا کن» بسازی. پس چرا هنوز باید Assembly یاد گرفت؟
🎯 جواب سادهست: چون درکت از کامپیوتر، CPU و اجرای واقعی برنامهها را چند سطح عمیقتر میکند و تو را به یک مهندس نرمافزار قویتر تبدیل میکند.
📘 کتاب Assembly Language Reimagined نوشتهی «جان شوارتزمن» یک نگاه تازه و مدرن به برنامهنویسی سطح پایین داره و توضیح میده چطور میشه با استفاده از BIOS و کتابخانهی glibc برنامههای Low-Level نوشت.
⚙️ این کتاب با رویکرد کاملاً آزمایشگاهی و عملی طراحی شده و کمک میکند بفهمی پردازنده دقیقاً چه کارهایی میتواند انجام بدهد، چه محدودیتهایی دارد و برنامههای سطح بالا مثل C/C++ واقعاً چطور اجرا میشوند.
🔍 توی این کتاب برنامههای سطح بالای ساختاریافتهی C/C++ مرحلهبهمرحله باز میشن تا ببینی CPU در هر بخش دقیقاً چه کاری انجام میده.
🛠️ در کل مسیر توسعه، مثالهای عملی، پروژههای واقعی، Sample Code، Makefile و Shell Script ارائه شده تا فقط در حد تئوری باقی نمانی.
🚀 با کمک این کتاب، دید مهندسی عمیقتری نسبت به سیستم، حافظه، پردازنده و نحوهی اجرای واقعی نرمافزارها پیدا میکنی و به یک Computer Engineer توانمندتر تبدیل میشی.
🎯 در این کتاب چه چیزهایی یاد میگیری؟
🧩 نگاه متفاوتی به معماری Intel x64 Microprocessor و برنامهنویسی سطح پایین پیدا میکنی.
🧠 میفهمی هنگام اجرای یک برنامهی High-Level، پردازنده در پشت صحنه دقیقاً چه کاری انجام میده.
⚙️ یاد میگیری چطور مسائل واقعی را با استفاده از نرمافزار و کنترل مستقیمتر روی سیستم حل کنی.
📚 درک میکنی چرا Assembly Language هنوز برای هر دانشجوی جدی علوم کامپیوتر یک مهارت مهم و بنیادینه.
👨💻 این کتاب مناسب چه کسانیه؟
🔧 توسعهدهندههای Embedded Linux و برنامهنویسهای Assembly
🖥️ مهندسها و برنامهنویسهای سیستم
🛠️ علاقهمندهای Maker Community و سختافزار
🎓 دانشجوهای کارشناسی و تحصیلات تکمیلی علوم کامپیوتر
📘 افرادی که حداقل با یک زبان سطح بالا مثل C یا C++ آشنایی دارن و میخوان لایههای پایینتر سیستم را بهتر درک کنن
📚 فهرست مطالب
👨🏫 درباره نویسنده
🧠 «جان شوارتزمن» یک مهندس سختافزار و نرمافزار با بیش از ۴۰ سال تجربهی صنعتی و آموزشی در حوزهی طراحی سیستم و برنامهنویسیه.
🏢 او سابقهی مدیریت تیمهای فنی در شرکتهای تکنولوژی بزرگ و کوچک را داشته و سالها بهصورت عملی روی Coding و System Design کار کرده.
📰 همچنین نویسندهی ثابت مجلههای Linux Magazine و Linux Format هم هست و تجربهی عمیقی در حوزهی Linux و برنامهنویسی Low-Level داره.
Learning assembly language won’t make you a faster programmer. It won’t enable you to create portable, write-once, run-anywhere programs. So why learn it? The answer is that it will make you a better programmer.
Author John Schwartzman takes a fresh look at low-level programming and explores how to write programs using the BIOS and glibc. This laboratory-based book aids the writing of high-level structured programs by showing what the processor can and can’t do and how it does it.
You’ll take apart high-level structured C/C++ and show what the CPU is doing at every stage of the program. The book introduces programs and activities throughout the development process, providing sample code, makefiles, and shell scripts for each example program.
With the help of Assembly Language Reimagined you’ll become a more capable and versatile computer engineer.
What You will Learn
Who This Book Is For
Embedded Linux and Assembly developers, engineers and programmers, hobbyists from the Maker community, as well as college and graduate level students who have some prior knowledge of a structured high-level language like C or C++
Table of Contents
Chapter 1: Using BIOS Services
Chapter 2: Extending BIOS Services
Chapter 3: Prefer glibc over BIOS Calls, uname Reprise
Chapter 4: Passing Information to a Program on the Command Line
Chapter 5: Using Macros and Passing Arguments on the Stack
Chapter 6: Conditional Compilation and Conditional Build
Chapter 7: Recursion
Chapter 8: Using Floating Point Registers
Chapter 9: The commaSeparate Utility
Chapter 10: The hhmmss Utility Program
Chapter 11: Creating and Using a Shared Library
Chapter 12: Sorting an Array of Integers
Chapter 13: Sorting an Array of Strings
Chapter 14: Finding, Reading, and Selecting File and Directory Metadata
Chapter 15: Creating and Sorting a Linked List
Chapter 16: Reading and Sorting File and Directory Information by Reading Directories
Chapter 17: Reading File and Directory Information with the Help of the Linux Shell Scripting Language, BASH
About the Author
John Schwartzman is a hardware/software engineer with over 40+ years of industry and teaching experience of hands-on coding and design. He has managed groups in tech companies large and small and is a regular writer for Linux Magazine and Linux Format.









