دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Igor Zhirkov (auth.)
سری:
ISBN (شابک) : 9781484224038, 9781484224021
ناشر: Apress
سال نشر: 2017
تعداد صفحات: 446
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 5 مگابایت
کلمات کلیدی مربوط به کتاب برنامه نویسی سطح پایین: C، اسمبلی، و اجرای برنامه در معماری Intel® 64: زبان های برنامه نویسی، کامپایلرها، مترجمان، معماری پردازنده، تکنیک های برنامه نویسی
در صورت تبدیل فایل کتاب Low-Level Programming: C, Assembly, and Program Execution on Intel® 64 Architecture به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب برنامه نویسی سطح پایین: C، اسمبلی، و اجرای برنامه در معماری Intel® 64 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این کتاب برای برنامه نویسانی است که قبلاً C را در سطح معقولی می دانند. چرا اینطور است؟ به سختی، دانستن تنها چند زبان تفسیر شده مانند Perl یا Python، کسی می خواهد بلافاصله اسمبلر را یاد بگیرد. استفاده از C و اسمبلر با هم، اعمال هر کدام زبان برای اهداف خاص، نتایج بسیار خوبی را می توان به دست آورد. بعلاوه برنامه نویسان C قبلاً دانشی از معماری و ویژگی های پردازنده دارند محاسبات ماشینی، نحوه سازماندهی حافظه و سایر مواردی که برای آنها جدید است درک برنامه نویسی آسان نیست. بنابراین، یادگیری اسمبلر بعد از C بدون شک است راحت تر از سایر زبان های سطح بالا. در C مفهوم "اشاره گر" وجود دارد، برنامه نویس باید تخصیص حافظه روی پشته را خودش مدیریت کند، و غیره - تمام این دانش زمانی مفید خواهد بود زبان اسمبلی به شما کمک می کند تا تصویر کامل تری از معماری و همچنین درک بهتری از نحوه اجرای برنامه های C خود دارند. اما اینها دانش نیاز به تعمیق و ساختار دارد. لازم به ذکر است که برای مطالعه این کتاب نیازی به دانش لینوکس نیست (غیر از البته دانش "نحوه ایجاد یک فایل متنی" و "نحوه اجرای برنامه در کنسول ها"). و به طور کلی، تنها چیزی که جهت گیری لینوکس را بیان می کند از دستور اسمبلر و ABI استفاده کرد. برنامه نویسان زبان اسمبلی در داس و ویندوز از سینتکس اینتل استفاده کنید، اما در سیستم های *nix استفاده از سینتکس AT مرسوم است
Эта книга ориентирована на программистов, которые уже знают Си на достаточном уровне. Почему так? Вряд ли, зная только несколько интерпретируемых языков вроде Perl или Python, кто-то захочет сразу изучать ассемблер. Используя Си и ассемблер вместе, применяя каждый язык для определённых целей, можно добиться очень хороших результатов. К тому же программисты Си уже имеют некоторые знания об архитектуре процессора, особенностях машинных вычислений, способе организации памяти и других вещах, которые новичку в программировании понять не так просто. Поэтому изучать ассемблер после Си несомненно легче, чем после других языков высокого уровня. В Си есть понятие «указатель», программист должен сам управлять выделением памяти в куче, и так далее — все эти знания пригодятся при изучении ассемблера, они помогут получить более целостную картину об архитектуре, а также иметь более полное представление о том, как выполняются их программы на Си. Но эти знания требуют углубления и структурирования. Следует подчеркнуть, что для чтения этой книги никаких знаний о Linux не требуется (кроме, разумеется, знаний о том, «как создать текстовый файл» и «как запустить программу в консоли»). Да и вообще, единственное, в чём выражается ориентированность на Linux, — это используемые синтаксис ассемблера и ABI. Программисты на ассемблере в DOS и Windows используют синтаксис Intel, но в системах *nix принято использовать синтаксис AT&T. Именно синтаксисом AT&T написаны ассемблерные части ядра Linux, в синтаксисе AT&T компилятор GCC выводит ассемблерные листинги и так далее. Введение Большую часть информации из этой книги можно использовать для программирования не только в *nix, но и в Windows, нужно только уточнить некоторые системно-зависимые особенности (например, ABI)
Введение Архитектура x86 или IA-32? Регистры Стек Память Порядок байтов. Little-endian и big-endian Hello, world! Синтаксис ассемблера Команды Данные Метки и прочие символы Неинициализированные данные Методы адресации Прямая или абсолютная адресация Непосредственная адресация Косвенная (базовая) адресация Автоинкрементная и автодекрементная адресация Регистровая адресация Относительная адресация Команды ассемблера Команда mov Команда lea Команды для работы со стеком Арифметика Команда lea для арифметики Команда loop Команды сравнения и условные переходы. Безусловный переход Произвольные циклы Программа: поиск наибольшего элемента в массиве Логическая арифметика Подпрограммы Программа: печать таблицы умножения Программа: вычисление факториала Системные вызовы Структуры Программа: вывод размера файла Программа: печать файла наоборот Операции с цепочками данных Пример: memcpy Пример: strlen Конструкция switch Пример: интерпретатор языка Brainfuck Булевы выражения См. также Отладчик GDB Ссылки