Общеобразовательные. |
Правообладателям
Assembler. Учебник для вузов. Юров В.И.
2-е изд. - СПб.:
2003. — 637 с.
В учебнике рассматриваются вопросы программирования
на языке ассемблера для компьютеров на базе микропроцессоров фирмы Intel. Основу
книги составляет материал, являющийся частью курса, читаемого автором в высшем
учебном заведении и посвященного вопросам системного программирования. По
сравнению с первым изданием учебник существенно переработан. Исправлены ошибки и
неточности. Добавлено описание команд для Intel-совместимых процессоров (до
Pentium IV включительно). Книга будет полезна студентам вузов, программистам и
всем желающим изучить язык Assembler. Допущено Министерством образования
Российской Федерации в качестве учебного пособия для студентов высших учебных
заведении, обучающихся по направлению подготовки дипломированных специалистов
«Информатика и вычислительная техника».
Формат:
pdf
Размер:
14,3 Мб
Скачать:
rusfolder.com
docs.google.com
СОДЕРЖАНИЕ
Предисловие 13
Благодарности 16
От издательства 16
Глава 1. Организация современного компьютера 17
Машинный язык и язык ассемблера 18
История процессоров Intel 21
Итоги 24
Глава 2. Программно-аппаратная архитектура IA-32
процессоров Intel 26
Архитектура ЭВМ 27
Архитектура IA-32 29
Варианты микроархитектуры процессоров Intel 30
Программная модель IA-32 40
Итоги 56
Глава 3. Система команд процессора IA-32 58
Формат машинных команд IA-32 59
Поле префиксов 61
Код операци и 63
Байт режима адресации mod г/т 64
Байт масштаба, индекса и базы 70
Поля смещения и непосредственного операнда 71
Функциональная классификация машинных команд 72
Итоги 73
Глава 4. Системы счисления 74
Двоичная система счисления 75
Шестнадцатеричная система счисления 76
Десятичная система счисления 77
Перевод чисел из одной системы счисления в другую 78
Перевод в десятичную систему счисления 78
Перевод в двоичную систему счисления 78
Перевод в шестнадцатеричную систему счисления 79
Перевод дробных чисел 80
Перевод чисел со знаком 83
Итоги 84
Глава 5. Синтаксис ассемблера 85
Синтаксис ассемблера 86
Операнды 90
Операнды-выражения 97
Директивы сегментации 103
Простые типы данных ассемблера 110
Итоги 119
Глава 6. Первая программа 121
Жизненный цикл программы 121
Пример простой программы 123
Процесс разработки программы 128
Трансляция программы 129
Компоновка программы 134
Отладка программы 135
Особенности разработки программ в MASM 141
Особенности разработки программ в Microsoft Visual Studio 142
Выбор пакета ассемблера 143
Итоги 144
Глава 7. Команды обмена данными 146
Пересылка данных 147
Ввод из порта и вывод в порт. 149
Работа с адресами и указателями 156
Преобразование данных 158
Работа со стеком 160
Итоги 164
Глава 8. Арифметические команды 165
Обзор 165
Целые двоичные числа 167
Десятичные числа 168
Арифметические операции над целыми двоичными числами 170
Сложение двоичных чисел без знака 170
Сложение двоичных чисел со знаком 172
Вычитание двоичных чисел без знака 173
Вычитание двоичных чисел со знаком 175
Вычитание и сложение операндов большой размерности 176
Умножение двоичных чисел без знака 177
Умножение двоичных чисел со знаком 179
Деление двоичных чисел без знака 179
Деление двоичных чисел со знаком 180
Вспомогательные команды для арифметических вычислений 181
Команды преобразования типов 181
Другие полезные команды 183
Арифметические операции над двоично-десятичными числами 183
Неупакованные BCD-числа 184
Упакованные BCD-числа 190
Итоги 192
Глава 9. Логические команды и команды сдвига 193
Логические данные 194
Логические команды 195
Команды сдвига 199
Линейный сдвиг 199
Циклический сдвиг. 201
Дополнительные команды сдвига 203
Примеры работы с битовыми строками 205
Рассогласование битовых строк 205
Вставка битовых строк 206
Извлечение битовых строк 207
Пересылка битов 207
Итоги 207
Глава 10. Команды передачи управления 209
Безусловные переходы 214
Команда безусловного перехода 215
Процедуры 219
Условные переходы 224
Команда сравнения 225
Команды условного перехода и флаги 227
Команды условного перехода и регистр ЕСХ/СХ 228
Установка байта по условию 229
Организация циклов 229
Ограничение области видимости для меток 234
Итоги 235
Глава 11 .Программирование типовых управляющих структур 236
Условный оператор if-else. 237
Оператор выбора switch 237
Операторы цикла 240
Оператор цикла с предусловием while 240
Операторы continue и break 240
Оператор цикла с постусловием do-while 241
Оператор итерационного цикла for 241
Особенности пакета MASM 242
Условная конструкция .IF 242
Циклическая конструкция .REPEAT 243
Циклическая конструкция .WHILE 244
Конструкции .BREAKи .CONTINUE 244
Комплексный пример 245
Итоги 248
Глава 12. Цепочечные команды 249
Пересылка цепочек 253
Команда MOVS 253
Пересылка байтов, слов и двойных слов 254
Сравнение цепочек 255
Команда CMPS 255
Сравнение байтов, слов и двойных слов 258
Сканирование цепочек , 259
Команда SCAS 259
Сканирование строки байтов, слов, двойных слов 260
Загрузка элемента цепочки в аккумулятор 261
Команда LODS 261
Загрузка в регистр AL/AX/EAX байтов, слов, двойных слов 262
Перенос элемента из аккумулятора в цепочку. 262
Команда STOS 263
Сохранение в цепочке байта, слова, двойного слова
из регистра AL/AX/EAX 264
Работас портами ввода-вывода 265
Ввод элемента цепочки из порта ввода-вывода 265
Вывод элемента цепочки в порт ввода-вывода 265
Итоги 266
Глава 13. Сложные структуры данных 268
Массивы 269
Описание и инициализация массива в программе 269
Доступ кэлементам массива 271
Двухмерные массивы 275
Типовые операции с массивами 278
Структуры 280
Описание шаблона структуры 281
Определение данных с типом структуры 281
Методы работы со структурами 282
Объединения 284
Записи 286
Описание записи 286
Определение экземпляра записи 287
Работа с записями 288
Дополнительные возможности обработки 290
Итоги 292
Глава 14. Макросредства языка ассемблера 293
Псевдооператоры EQU и = 295
Макрокоманды 297
Макродирективы 305
Директивы WHILE и REPT 305
Директива IRP 307
Директива IRPC 307
Директивы условной компиляции ' 308
Директивы компиляции по условию 308
Директивы генерации ошибок 315
Константные выражения в условных директивах 318
Дополнительные средства управления трансляцией 319
Директивы управления файлом листинга 321
Итоги 322
Глава 15. Модульное программирование 324
Структурное программирование 325
Процедуры в языке ассемблера 327
Передача аргументов через регистры 331
Передача аргументов через общую область памяти 332
Передача аргументов через стек 334
Использование директив EXTRN и PUBLIC 337
Возврат результата из процедуры 340
Связь ассемблера с языками высокого уровня 344
Встраиваемый ассемблерный код 345
Внешний ассемблерный код 346
Команды ENTER и LEAVE 356
С и ассемблер. 359
Итоги 364
Глава 16. Создание Windows-приложений на ассемблере 365
Программирование оконных Windows-приложений 367
Каркасное Windows-приложение на C/C++ 368
Каркасное Windows-приложение на ассемблере 379
Стартовый код 387
Главная функция 389
Обработка сообщений в оконной функции 398
Средства TASM для разработки Windows-приложений 401
Углубленное программирование на ассемблере для Win32 404
Ресурсы Windows-приложений на языке ассемблера 406
Меню в Windows-приложениях 406
Перерисовка изображения 413
Окна диалога в Windows-приложениях 420
Программирование консольных Windows-приложений 435
Минимальная программа консольного приложения 437
Организация высокоуровневого консольного ввода-вывода 438
Пример программы консольного ввода-вывода 440
Итоги 446
Глава 17. Архитектура и программирование сопроцессора 447
Архитектура сопроцессора 448
Регистр состояния SWR 453
Регистр управления CWR 454
Регистр тегов TWR 455
Форматы данных 456
Двоичные целые числа 457
Упакованные целые десятичные числа 457
Вещественные числа 458
Специальные численные значения 463
Система команд сопроцессора 466
Команды передачи данных 468
Команды загрузки констант 471
Команды сравнения данных 472
Арифметические команды 474
Команды трансцендентных функций 482
Команды управления сопроцессором 494
Исключения сопроцессора и их обработка 500
Недействительная операция 501
Деление на ноль 501
Денормализация операнда 501
Переполнение и антипереполнение 502
Неточный результат. 502
Немаскируемая обработка исключений 502
Использование отладчика 505
Общие рекомендации по программированию сопроцессора 507
Итоги 508
Вместо заключения 510
Приложение. Система команд процессоров IA-32 511
Целочисленные команды 513
Команды сопроцессора 553
Команды блока М MX 569
Команды блока ХММ (SSE и SSE2) 587
Список литературы . 625
Алфавитный указатель 626
О том, как читать книги в форматах
pdf,
djvu
- см. раздел "Программы; архиваторы; форматы
pdf, djvu
и др."
|