Сборник по задачам и примерам Assembler

           

Сборник по задачам и примерам Assembler

Введение
Структура книги

Сборник по задачам и примерам Assembler

Глава 1. Программирование целочисленных арифметических операций
Программирование целочисленных арифметических операций
Двоичные числа
Сложение чисел размером 1 байт без учета знака



Сложение чисел размером N байт без учета знака
Сложение чисел размером 1 байт с учетом знака
Сложение с учетом знака чисел размером N байт
Вычисление дополнения числа размером N байт
Вычисление модуля числа размером N байт
Вычитание двоичных чисел
Вычитание чисел размером N байт без учета знака
Вычитание чисел размером 1 байт с учетом знака
Вычитание чисел размером N байт с учетом знака

Умножение двоичных чисел
Умножение чисел размером 1 байт без учета знака
Умножение чисел размером N и М байт без учета знака
Умножение чисел размером 1 байт с учетом знака
Умножение чисел размером N и М байт с учетом знака
Умножение N-байтного числа на число размером М байт с учетом знака
Вычисление дополнения числа размером N байт (реверсивное)
Вычисление модуля числа размером N байт (реверсивное)

Деление двоичных чисел
Деление без учета знака значения размером 2 байта на значение размером 1 байт
Деление с учетом знака значения размером 2 байта на значение размером 1 байт
Деление (N+М)-разрядного беззнакового целого на число размером М байт
Двоично-десятичные числа (BCD-числа)
Неупакованные BCD-числа
Сложение неупакованных BCD-чисел (макрокоманда)
Вычитание неупакованных BCD-чисел (макрокоманда)

Умножение неупакованных BCD-чисел (макрокоманда)
Деление N-разрядного беззнакового
Преобразование упакованного BCD-числа размером N байт в неупакованное BCD-число (макрокоманда)
Генерация последовательности случайных чисел
Конгруэнтный метод генерации последовательности случайных чисел
Мультипликативный конгруэнтный метод генерации последовательности случайных чисел
Смешанный конгруэнтный метод генерации последовательности случайных чисел

Аддитивный генератор случайных чисел

Сборник по задачам и примерам Assembler

Глава 2. Сложные структуры данных
Сложные структуры данных Сутью
Основные понятия
Способы распределения памяти
Механизм виртуальной памяти Windows

Механизм работы с кучами Windows
Множество
Массив
Описание массивов
Работа с массивами
Сортировка массивов

Поиск в массивах
Неупорядоченный поиск
Упорядоченный поиск
Действия с матрицами
Транспонирование прямоугольной матрицы
Структура

Вложенные структуры
Массивы структур — таблицы
Поиск в таблице
Список

Последовательные списки
Стек
Очередь
Дека
Связные списки
Односвязные списки
Двусвязные списки
Сеть
Создание односвязного списка переходов для состояния конечного автомата

Дерево
Представление дерева в памяти
Построение двоичного дерева
Обход узлов дерева
Лексикографическое дерево
Элементы компиляции программ

Формальное описание языка программирования
Описание процесса трансляции программы
Лексический анализ

Выделение классов лексем
Синтаксический анализ

Сборник по задачам и примерам Assembler

Глава 3. Процедуры в программах ассемблера
Процедуры в программах ассемблера
Реализация рекурсивных процедур

Реализация вложенных процедур
Разработка динамических (DLL) библиотек
Шаг 1. Разработка текста DLL-библиотеки
Шаг 2. Трансляция и компоновка исходного текста DLL-библиотеки
Шаг 3. Создание lib-файла

Шаг 4. Сборка приложения с использованием DLL-библиотеки
Шаг 5. Проверка работоспособности приложения с использованием DLL-библиотеки

Сборник по задачам и примерам Assembler

Глава 4. Обработка цепочек элементов
Обработка цепочек элементов
Прямой поиск в текстовой строке
Поиск с предварительным анализом искомой подстроки

Сборник по задачам и примерам Assembler

Глава 5. Работа с консолью в программах на ассемблере

Работа с консолью в программах на ассемблере
Функции BIOS для работы с консолью
Функции BIOS для работы с клавиатурой
Проверка наличия символа (01h, 11h, 21h int 16h)
Получение состояния флагов клавиатуры (02h, 12h, 22h int 16h)
Запись символа в буфер клавиатуры (05h int 16h)
Функции BIOS для работы с экраном
Установка видеорежима (00h int 10h)
Установка позиции курсора (02h int 10h)
Получение позиции курсора (03h int 10h)

Запись символа и его атрибута в видеопамять (09h int 10h)
Чтение символа и его атрибута из видеопамяти (08h int 10h)
Запись символа в видеопамять (0Ah int 10h)
Запись символа в режиме телетайпа (0Eh int 10h)
Вывод строки (13h int 10h)
Перемещение в окне вверх (06h int 10h)
Функции MS DOS для работы с консолью
Функции MS DOS для ввода данных с клавиатуры
Чтение с эхом символа с клавиатуры (10h int 21h)
Прямой ввод с эхом символа с клавиатуры (06h int 21h)

Чтение без эха символа с клавиатуры (07h int 21h)
Чтение без эха символа с клавиатуры (08h int 21h)
Ввод строки символов с клавиатуры (0ah int 21h)
Получить состояние клавиатуры (0Bh int 21h)
Ввод с клавиатуры с предварительной очисткой буфера (ОСh int 21h)
Функции MS DOS для вывода данных на экран
Вывод символа на экран (02h int 21h)
Прямой вывод символа на экран (06h int 21h)
Вывод строки на экран (09h int 21h)
Работа с консолью в среде Windows

Организация ввода-вывода в консольном приложении Windows
Организация ввода-вывода в консольном приложении Windows - 2
Минимальная программа консольного приложения

Организация низкоуровнего консольного ввода-вывода

Сборник по задачам и примерам Assembler

Глава 6. Преобразование чисел
Преобразование чисел

Преобразование чисел - 2
Ввод чисел с консоли
Ввод целых десятичных чисел из диапазона 0..99
Ввод целых десятичных чисел из диапазона 0..999 999 999 999 999 999
Ввод целых десятичных чисел из диапазона 0..до бесконечности
Ввод вещественных чисел
Вывод чисел на консоль

Вывод целых десятичных чисел из диапазона 0..99
Вывод целых десятичных чисел из диапазона от 0 до бесконечности
Вывод целых десятичных чисел из диапазона 0..999 999 999 999 999 999
Вывод вещественных чисел

Сборник по задачам и примерам Assembler

Глава 7. Работа с файлами в программах на ассемблере

Работа с файлами в программах на ассемблере
Работа с файлами в MS DOS (имена 8.3)
Создание, открытие, закрытие и удаление файла
Создание файла с усечением существующего до нулевой длины
Открытие или создание файла с расширенными возможностями
Закрытие файла
Чтение, запись, позиционирование в файле
Установка текущей файловой позиции
Запись в файл или устройство

Чтение из файла или устройства
Получение и изменение атрибутов файла
Получить атрибуты файла
Установить атрибуты файла
Переименовать файл
Установить дату и время создания или последней модификации файла
Получить номер заданного по умолчанию дисковода

Работа с файлами в MS DOS (длинные имена)
Создание, открытие, закрытие и удаление файла
Открытие или создание файла
Удаление файла
Получить дату и время создания файла

Установить дату последней модификации файла
Установить дату и время создания или последней модификации файла
Получить атрибуты файла
Установить атрибуты файла
Переименовать файл
Работа с дисками, каталогами и организация поиска файлов
Получить информацию о томе
Создание каталога
Изменить текущий каталог

Получение текущего каталога
Получить полный путь
Получить полный путь с краткими именами (в формате 8.3)
Получить полный путь с длинными именами
Получить информацию о файле по описателю
Получить информацию о файле по описателю - 2
Создать псевдоним
Поиск файлов и каталогов

Файловый ввод-вывод в Win32
Обработка ошибок
Создание, открытие, закрытие и удаление файла
Закрытие файла
Копирование файла
Перемещение файла
Переименование файла
Удаление файла
Чтение, запись, позиционирование в файле

Установка текущей файловой позиции
Получение и изменение атрибутов файла
Работа с дисками, каталогами и организация поиска файлов
Получить информацию о свободном дисковом пространстве
Создание и удаление каталога

Определение и изменение текущего каталога
Поиск файлов
Поиск файлов с помощью функции SearchPath
Файлы, отображаемые в память

Сборник по задачам и примерам Assembler

Глава 8. Профайлер

Профайлер
Расширение традиционной архитектуры Intel
Команды RDMSR и WRMSR
Команда CPUID — получение информации о текущем процессоре
Использование счетчика меток реального времени TSC

Сборник по задачам и примерам Assembler

Глава 9. Вычисление CRC

Вычисление CRC
CRC-арифметика

Прямой алгоритм вычисления CRC
Основы
Прямой табличный алгоритм CRC16
Прямой табличный алгоритм CRC32

«Зеркальный» табличный алгоритм CRC32

Сборник по задачам и примерам Assembler

Глава 10. Программирование ХММ-расширения
Программирование ХММ-расширения
Программирование ХММ-расширения
Описание упакованных и скалярных данных

Примеры использования команд ХММ-расширения
Сложение и умножение двух упакованных ХММ-значений
Умножение матрицы на вектор
Умножение матрицы 4x4 на четырехмерный вектор (стандартный сопроцессор)
Препроцессор команд ХММ-расширения
Поддержка ХММ-команд в файле iaxmm.inc

Язык описания команд ассемблера
Выделение классов лексем
Классы литер
«Склеивание» конечных автоматов для всех классов лексем
Синтаксический анализ

Структура книги - 4

Основы XML далее
Самоучитель по Windows XP далее