Ушел с форума
16281 / 7605 / 1066
Регистрация: 11.11.2010
Сообщений: 13,618
|
|
1
|
Электронный учебник
10.11.2013, 16:25. Показов 366469. Ответов 51
Содержание - ПРЕДИСЛОВИЕ
Кликните здесь для просмотра всего текста
- Введение в язык ассемблера
- Концепция Джона фон Неймана
- Глава 1. МИКРОПРОЦЕССОРЫ ФИРМЫ INTEL
Кликните здесь для просмотра всего текста
- Начало
- Микропроцессор i8086
- Микропроцессор i8088
- Микропроцессор i80186
- Микропроцессор i80188
- Микропроцессор i80286
- Микропроцессор i80386
- Сопроцессор
- Кэш-память
- Микропроцессор i80486
- Семейство микропроцессоров Pentium
- Микропроцессор Pentium
- Микропроцессор Pentium Pro
- Микропроцессор Pentium MMX
- Микропроцессор Pentium II
- Микропроцессор Celeron
- Микропроцессор Pentium III
- Микропроцессор Pentium 4
- Глава 2. ПРЕДСТАВЛЕНИЕ ДАННЫХ
Кликните здесь для просмотра всего текста
- Глава 3. АРХИТЕКТУРА 32/64-РАЗРЯДНОГО МИКРОПРОЦЕССОРА СЕМЕЙСТВА 80X86
Кликните здесь для просмотра всего текста
- Память
- Внутренняя архитектура 32/64-разрядного микропроцессора семейства 80x86
- Регистры микропроцессора
- Система команд
- Система прерываний
- Внешние прерывания
- Внутренние прерывания
- Глава 4. ЭТАПЫ СОЗДАНИЯ ПРОГРАММЫ НА ЯЗЫКЕ АССЕМБЛЕРА
Кликните здесь для просмотра всего текста
- Подготовка текста программы
- Использование стандартных редакторов
- Ассемблирование программы
- Компоновка программы
- Загрузка программы
- Отладка программы
- Использование интегрированных сред
- Структура программы
- Пишем первую программу на языке ассемблера
- Что при этом происходит?
- Глава 5. ОСНОВНЫЕ ПРАВИЛА НАПИСАНИЯ ПРОГРАММ НА ЯЗЫКЕ АССЕМБЛЕРА
- Глава 6. СИНТАКСИС АССЕМБЛЕРА
Кликните здесь для просмотра всего текста
- Лексемы
- Идентификаторы
- Целые числа
- Символьные и строковые константы
- Предложения
- Комментарии
- Команды
- Метка
- Мнемокод
- Операнды
- Машинные коды для всех возможных сочетаний операторов
- команды
- Комментарий
- Директивы
- Директивы определения данных
- Директива DB
- Операнд «?»
- Операнд – константное выражение со значением от –128 до 255
- Директива с несколькими операндами
- Операнд – строка
- Операнд – конструкция повторения DUP
- Директива DW
- Операнд «?»
- Константное выражение со значением от –32768 до 65535
- Адресное выражение
- Несколько операндов, конструкция повторения
- Директива DD
- Операнд «?»
- Константное выражение со значением от –231 до 232-1
- Адресное выражение
- Несколько операндов, конструкция повторения
- Дополнительные директивы определения данных
- Выводы
- Директивы эквивалентности и присваивания
- Директива эквивалентности
- Операнд – имя
- Операнд – константное выражение
- Операнд – любой другой текст
- Директива присваивания «=».
- Целочисленные выражения
- Константные выражения
- Адресные выражения
- Мнемоника команд MMX, SSE, SSE2
- SIMD для работы с вещественными числами
- SIMD для работы с целыми числами
- Глава 7. КОМАНДЫ ПЕРЕДАЧИ ДАННЫХ
Кликните здесь для просмотра всего текста
- Команды пересылки
- Команда MOV
- Программирование на уровне битов
- Режимы адресации
- Уменьшение размера кодировки MOV
- Команда LEA
- Команда XCHG
- Команда обмена байтов BSWAP
- Оператор указания типа (PTR)
- Глава 8. БУЛЕВА АЛГЕБРА
Кликните здесь для просмотра всего текста
- Глава 9. ЛОГИЧЕСКИЕ КОМАНДЫ
Кликните здесь для просмотра всего текста
- Команда NOT
- Команда AND
- Команда OR
- Команда XOR
- Шифрование с помощью команды XOR
- Команда ANDN
- Команда TEST
- Команды обработки бит
- Команды сканирования бит
- Команды проверки и модификации бит
- Команда BT
- Команда BTC
- Команда BTR
- Команда BTS
- Работа с битами
- Команды управления флагами микропроцессора
- Установка флага CF
- Сброс флага CF
- Инвертировать флаг CF
- Установка флага DF
- Сброс флага DF
- Установка флага IF
- Сброс флага IF
- Установка флага ZF
- Установка флага TF
- Одновременное изменение значения нескольких флагов
- Обобщаем. Как изменить (установить/сбросить) определенный бит в байте?
- Глава 10. АРИФМЕТИЧЕСКИЕ КОМАНДЫ
Кликните здесь для просмотра всего текста
- Двоичное сложение. Теоретическая часть
- Сложение чисел A и B в один этап
- Сложение чисел A и B в несколько этапов
- Команды сложения и вычитания
- Команды ADD и SUB
- Маленькие хитрости
- Команды INC и DEC
- Команда изменение знака NEG
- Команды ADC и SBB
- Для чего нужны команды ADC и SBB? Арифметика одинарной и многократной точности
- Применение команды SBB
- Команда SALC
- Кодировка команд сложения и вычитания
- Флаги переполнения и переноса
- Команда XADD
- Команды сложения и вычитания упакованных чисел
- Подробнее об арифметических операциях ММХ
- Команда EMMS
- Циклическая арифметика (wraparound arithmetic)
- Арифметика с насыщением (saturation arithmetic)
- Команды сложения циклической арифметики
- Команды сложения данных со знаком и данных без знака (арифметика насыщения) PADDSB/PADDSW/PADDUSB/PADDUSW
- Команды вычитания циклической арифметики PSUBB/PSUBW/PSUBD/PSUBQ
- Команды вычитания упакованных данных со знаком и данных без знака (арифметика насыщения) PSUBSB/ PSUBSW/PSUBUSB/PSUBUS
- Команды умножения
- Команда MUL
- Умножение с многократной точностью
- Пример оптимизации по размеру
- Пример оптимизации по быстродействию
- Команда IMUL
- Команды MMX умножения
- Команда PMULHW/PMULHUW (циклическая арифметика)
- Команда PMULLW (циклическая арифметика)
- Команда PMULHRSW (циклическая арифметика)
- Команда PMULLW (циклическая арифметика)
- Команда PMULUDQ (циклическая арифметика)
- Команда PMADDWD (циклическая арифметика)
- Команда PMADDUBSW (циклическая арифметика)
- Недокументированные способы умножения
- Использование команды AAD
- Использование сдвигов и сложений
- Алгоритм Бутса
- Варианты реализации алгоритма Бутса для умножения двух 8-разрядных чисел X и Y
- Прочие способы
- Команды деления
- Команда DIV
- Команда IDIV
- Недокументированные способы деления
- Использование команды AAM
- Табличное преобразование
- Деление через вычитание
- Деление через вычитание, сложение и сдвиги
- Деление через умножение
- Получение остатка от деления
- Изменение размера числа
- Команды CBW, CWD, CWDE, CDQ, CQO
- Кодировка CBW/CWD/CWDE/ CDQ/ CDQE/CQO
- Команда MOVZX
- Команда MOVSX
- Команда PMOVMSKB
- Глава 11. ДОПОЛНИТЕЛЬНЫЕ АРИФМЕТИЧЕСКИЕ КОМАНДЫ
Кликните здесь для просмотра всего текста
- Некоторые особенности арифметических операций с числами с плавающей запятой
- Ошибки округления при сложении и вычитании
- Ошибки округления при умножении
- Программная модель FPU
- Регистры данных R0-R7
- Регистр тэгов TW
- Регистры FIP и FDP
- Регистр состояний RSW
- Регистр управления RCW
- Практическая работа с блоком FPU
- Обратная польская нотация
- Система команд блока FPU
- Команды передачи данных
- Команды FLD
- Команды FST
- Команда FXCH
- Арифметические команды
- Команды FADD
- Команды FSUB
- Команды FMUL
- Команды FDIV
- Команда FPREM
- Команда FPREM1
- Команда FRNDINT
- Команда FSQRT
- Возможная проблема с потерей точности
- Команды масштабирования
- Возведение числа 2 в дробную степень. Команда F2XM1
- Команда FXTRACT
- Команда FABS
- Команда FCHS
- Кодировка трансцендентальных и прочих функций
- Команды сравнения
- Команды FCOM (FCOMP, FCOMPP, FICOM, FICOMP)
- Команда FUCOM (FUCOMP, FUCOMPP)
- Команда FTST
- Команда FXAM
- Команда FCMOVcc
- Трансцендентальные функции
- Тригонометрические функции
- Команда FCOS
- Команда FSIN
- Команда FSINCOS
- Команда FPTAN
- Команда FPATAN
- Обратные тригонометрические функции
- Логарифмические функции
- Команда FYL2X
- Логарифмические функции на основе FYL2X
- Команда FYL2XP1
- Команды загрузки констант
- Команды управления FPU
- Опкоды основных команд FPU
- Формирование программного кода для эмуляции команд с плавающей запятой
- Глава 12 КОМАНДЫ СДВИГА
Кликните здесь для просмотра всего текста
- Логические сдвиги
- Команды SHL, PSLLx, PSLLDQ
- Команда SHR, PSRLx, PSRLDQ
- Команда SHLD
- Команда SHRD
- Арифметические сдвиги
- Циклические сдвиги
- Команда ROL
- Команда ROR
- Команда RCL
- Команда RCR
- Записи
- Описание типа записи
- Описание переменных-записей
- Средства для работы с полями записей
- Оператор MASK
- Дополнительные возможности обработки записей
- Генерация псевдослучайных чисел
- Псевдослучайные последовательности, образованные при помощи циклического сдвига
- Свойства последовательностей максимальной длины для шифровальщиков и любителей взламывать чужие шифры
- Глава 13. ПЕРЕХОДЫ И ЦИКЛЫ
Кликните здесь для просмотра всего текста
- Команда безусловного перехода JMP
- Прямой переход
- Использование опкода EB (JMP SHORT)
- Использование опкода E9 (JMP NEAR)
- Использование опкода EA (JMP FAR)
- Выводы
- Косвенный переход
- Оператор SHORT
- Команды сравнения и условного перехода
- Команда CMP
- Команда CMPXCHG
- Команда CMPXCHG8B
- Команды условного перехода
- Команды SETcc
- Команды CMOVcc
- Предсказание ветвлений
- Команды управления циклом
- Циклы
- Команда LOOP (LOOPW, LOOPD)
- Команды LOOPE/LOOPZ и LOOPNE/LOOPNZ
- Регистр RFLAGS/EFLAGS
- Формат регистра флагов EFLAGS
- Флаги состояния и флаг направления DF
- Системные флаги и поле IOPL
- Глава 14. МАССИВЫ
Кликните здесь для просмотра всего текста
- Описание массива и его инициализация
- Доступ к элементам массива
- Модификация адресов
- Индексирование
- Косвенные ссылки
- Модификация по нескольким регистрам
- Запись модифицированных адресов
- Сортировка элементов массива
- Оценка алгоритма сортировки
- Блочная сортировка
- Пузырьковая сортировка
- Сортировка перемешиванием
- Пирамидальная сортировка
- Сортировка прямым включением
- Сортировка прямым выбором
- Сортировка Шелла
- Сортировка Хоара
- Глава 15. ПОДПРОГРАММЫ-ПРОЦЕДУРЫ
Кликните здесь для просмотра всего текста
- Где размещать подпрограмму?
- Как оформлять подпрограмму?
- Вызов процедур и возврат из них
- Команда CALL
- Команды RET/ RETN/ RETF
- Косвенный вызов процедур
- Другие варианты команды CALL
- Передача параметров процедуре
- Передача параметров через регистры
- Передача параметров по значению
- Передача параметров по ссылке
- Сохранение регистров в процедуре
- Передача параметров сложных типов
- Передача параметров через стек
- C- и PASCAL-процедуры
- Локальные данные процедур
- Рекурсивные процедуры
- Разложение в ряд
- Модульное конструирование процедур
- Кодировка CALL и RET
- Внешние процедуры
- Глава 16. СТЕК И СЕГМЕНТ СТЕКА
Кликните здесь для просмотра всего текста
- Стековые команды
- Команда PUSH
- Команда POP
- Команда PUSHA/PUSHAD/PUSHAW
- Команда POPAD/POPAW
- Команда PUSHFD/ PUSHF
- Команда POPFD/POPF
- Некоторые приемы работы со стеком
- Сохранение значений регистров
- Размещение в стеке строки символов
- Пересылка данных через стек
- Проверка на выход за пределы стека
- Принудительная очистка стека
- Доступ к элементам стека. Регистр BP/EBP/RBP
- Глава 17. СТРОКОВЫЕ КОМАНДЫ
Кликните здесь для просмотра всего текста
- Команды сравнения строк CMPSB/CMPSW/CMPSD
- Команды загрузки строки LODSB/LODSW/LODSD
- Команды сохранения строки STOSB/STOSW/ STOSD
- Команды пересылки строк MOVSB/MOVSW/MOVSD
- Команды сканирования строк SCASB/SCASW/SCASD
- Кодировка строковых команд
- Префиксы повторения REP/REPE/REPZ/REPNE/REPNZ
- Кодировка префиксов повторения
- Команды загрузки адресных пар в регистры
- Команды LDS/LES/LFS/LGS/LSS
- Глава 18. ПРОЧИЕ ОЧЕНЬ ПОЛЕЗНЫЕ КОМАНДЫ
Кликните здесь для просмотра всего текста
- Глава 19. ДВОИЧНО-ДЕСЯТИЧНЫЕ ЧИСЛА
Кликните здесь для просмотра всего текста
- Сложение и вычитание двоично-десятичных упакованных чисел. Команды DAA и DAS
- Символьная коррекция сложения и вычитания. Команды AAA и AAS
- Подпрограммы для ASCII сложения/вычитания с использованием BSWAP
- Умножение и деление неупакованных двоично-десятичных чисел. Команды AAM и AAD
- Использование команд AAD и AAM
- Использование FPU для работы с BCD-числами
- Кодировка команд AAA, AAS, DAA, DAS
- Глава 20. РАБОТА С ПОРТАМИ ВВОДА/ВЫВОДА
Кликните здесь для просмотра всего текста
- Команда IN
- Команда OUT
- Команды INSB/INSW/INSD
- Команды OUTSB/ OUTSW/OUTSD
- Пример использования команд IN, OUT, OUTS
- Кодировка команд ввода/вывода
- Глава 21. Макроязык
Кликните здесь для просмотра всего текста
- Блоки повторения
- REPT–блоки
- WHILE-блоки
- IRP–блоки
- IRPC–блоки
- Макрооператоры
- Макрооператор &
- Макрооператор <>
- Макрооператор !
- Макрооператор %
- Макрооператор ;;
- Макросы
- Макроопределения
- Макрокоманды
- Макроподстановки и макрорасширения
- Примеры использования макросов
- Определение макроса через макрос
- Директива LOCAL
- Директивы EXITM и GOTO
- Переопределение и отмена макросов
- Условное ассемблирование
- Директивы IF и IFE
- Операторы отношения. Логические операторы
- Директивы IFB и IFNB, IFIDN, IFDIF
- Контрольные вопросы и упражнения
- БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Вопросы, предложения и пожелания - сюда
106
|