Assembler — В учебнике рассматриваются вопросы программирования на языке ассемблера для компьютеров на базе микропроцессоров фирмы Intel. Основу книги составляет материал, являющийся частью курса, читаемого автором в высшем учебном заведении и посвященного вопросам системного программирования. По сравнению с первым изданием учебник существенно переработан. Исправлены ошибки и неточности. Добавлено описание команд для Intel-совместимых процессоров (до Pentium IV включительно). Книга будет полезна студентам вузов, программистам и всем желающим изучить язык Assembler. Допущено Министерством образования Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки дипломированных специалистов «Информатика и вычислительная техника».
Название: Assembler. Учебник для вузов. 2-е изд. Автор: Юров В. И. Издательство: Питер Год: 2010 Страниц: 640 Формат: PDF Размер: 10,06 МБ ISBN: 978-5-94723-581-4 Качество: отличное Серия: Учебник для вузов Язык: русский
Содержание:
Предисловие Благодарности От издательства Глава 1. Организация современного компьютера Машинный язык и язык ассемблера История процессоров Intel Итоги Глава 2. Программно-аппаратная архитектура IA-32 процессоров Intel Архитектура ЭВМ Архитектура IA-32 Варианты микроархитектуры процессоров Intel Программная модель IA-32 Итоги Глава 3. Система команд процессора IA-32 Формат машинных команд IA-32 Поле префиксов Код операции Байт режима адресации mod r/m Байт масштаба, индекса и базы Поля смещения и непосредственного операнда Функциональная классификация машинных команд Итоги Глава 4. Системы счисления Двоичная система счисления Шестнадцатеричная система счисления Десятичная система счисления Перевод чисел из одной системы счисления в другую Перевод в десятичную систему счисления Перевод в двоичную систему счисления Перевод в шестнадцатеричную систему счисления Перевод дробных чисел Перевод чисел со знаком Итоги Глава 5. Синтаксис ассемблера Синтаксис ассемблера Операнды Операнды-выражения Директивы сегментации Простые типы данных ассемблера Итоги Глава 6. Первая программа Жизненный цикл программы Пример простой программы Процесс разработки программы Трансляция программы Компоновка программы Отладка программы Особенности разработки программ в MASM Особенности разработки программ в Microsoft Visual Studio Выбор пакета ассемблера Итоги Глава 7. Команды обмена данными Пересылка данных Ввод из порта и вывод в порт Работа с адресами и указателями Преобразование данных Работа со стеком Итоги Глава 8. Арифметические команды Обзор Целые двоичные числа Десятичные числа Арифметические операции над целыми двоичными числами Сложение двоичных чисел без знака Сложение двоичных чисел со знаком Вычитание двоичных чисел без знака Вычитание двоичных чисел со знаком Вычитание и сложение операндов большой размерности Умножение двоичных чисел без знака Умножение двоичных чисел со знаком Деление двоичных чисел без знака Деление двоичных чисел со знаком Вспомогательные команды для арифметических вычислений Команды преобразования типов Другие полезные команды Арифметические операции над двоично-десятичными числами Неупакованные BCD-числа Упакованные BCD-числа Итоги Глава 9. Логические команды и команды сдвига Логические данные Логические команды Команды сдвига Линейный сдвиг Циклический сдвиг Дополнительные команды сдвига Примеры работы с битовыми строками Рассогласование битовых строк Вставка битовых строк Извлечение битовых строк Пересылка битов Итоги Глава 10. Команды передачи управления Безусловные переходы Команда безусловного перехода Процедуры Условные переходы Команда сравнения Команды условного перехода и флаги Команды условного перехода и регистр ECX/CX Установка байта по условию Организация циклов Ограничение области видимости для меток Итоги Глава 11. Программирование типовых управляющих структур Условный оператор if-else Оператор выбора switch Операторы цикла Оператор цикла с предусловием while Операторы continue и break Оператор цикла с постусловием do-while Оператор итерационного цикла for Особенности пакета MASM Условная конструкция. IF Циклическая конструкция. REPEAT Циклическая конструкция. WHILE Конструкции .BREAK и .CONTINUE Комплексный пример Итоги Глава 12. Цепочечные команды Пересылка цепочек Команда MOVS Пересылка байтов, слов и двойных слов Сравнение цепочек Команда CMPS Сравнение байтов, слов и двойных слов Сканирование цепочек Команда SCAS Сканирование строки байтов, слов, двойных слов Загрузка элемента цепочки в аккумулятор Команда LODS Загрузка в регистр AL/AX/EAX байтов, слов, двойных слов Перенос элемента из аккумулятора в цепочку Команда STOS Сохранение в цепочке байта, слова, двойного слова из регистра AL/AX/EAX Работа с портами ввода-вывода Ввод элемента цепочки из порта ввода-вывода Вывод элемента цепочки в порт ввода-вывода Итоги Глава 13. Сложные структуры данных Массивы Описание и инициализация массива в программе Доступ к элементам массива Двухмерные массивы Типовые операции с массивами Структуры Описание шаблона структуры Определение данных с типом структуры Методы работы со структурами Объединения Записи Описание записи Определение экземпляра записи Работа с записями Дополнительные возможности обработки Итоги Глава 14. Макросредства языка ассемблера Псевдооператоры EQU и = Макрокоманды Макродирективы Директивы WHILE и REPT Директива IRP Директива IRPC Директивы условной компиляции Директивы компиляции по условию Директивы генерации ошибок Константные выражения в условных директивах Дополнительные средства управления трансляцией Директивы управления файлом листинга Итоги Глава 15. Модульное программирование Структурное программирование Процедуры в языке ассемблера Передача аргументов через регистры Передача аргументов через общую область памяти Передача аргументов через стек Использование директив EXTRN и PUBLIC Возврат результата из процедуры Связь ассемблера с языками высокого уровня Встраиваемый ассемблерный код Внешний ассемблерный код Команды ENTER и LEAVE C и ассемблер Итоги Глава 16. Создание Windows-приложений на ассемблере Программирование оконных Windows-приложений Каркасное Windows-приложение на C/C++ Каркасное Windows-приложение на ассемблере Стартовый код Главная функция Обработка сообщений в оконной функции Средства TASM для разработки Windows-приложений Углубленное программирование на ассемблере для Win32 Ресурсы Windows-приложений на языке ассемблера Меню в Windows-приложениях Перерисовка изображения Окна диалога в Windows-приложениях Программирование консольных Windows-приложений Минимальная программа консольного приложения Организация высокоуровневого консольного ввода-вывода Пример программы консольного ввода-вывода Итоги Глава 17. Архитектура и программирование сопроцессора Архитектура сопроцессора Регистр состояния SWR Регистр управления CWR Регистр тегов TWR Форматы данных Двоичные целые числа Упакованные целые десятичные числа Вещественные числа Специальные численные значения Система команд сопроцессора Команды передачи данных Команды загрузки констант Команды сравнения данных Арифметические команды Команды трансцендентных функций Команды управления сопроцессором Исключения сопроцессора и их обработка Недействительная операция Деление на ноль Денормализация операнда Переполнение и антипереполнение Неточный результат Немаскируемая обработка исключений Использование отладчика Общие рекомендации по программированию сопроцессора Итоги Вместо заключения Приложение. Система команд процессоров IA-32 Целочисленные команды Команды сопроцессора Команды блока MMX Команды блока XMM (SSE и SSE2) Список литературы Алфавитный указатель