Курс, 4 семестр, 51 час Лекции Саратов 2007 Часть Системное программное обеспечение 3



СодержаниеЧасть 3. Команды Ассемблера 33
Часть 1.Системное программное обеспечение 1.1.Понятие архитектуры ЭВМ
1.2.Программное обеспечение ЭВМ
Оболочки операционных систем
1.3.Компиляция и интерпретация программ
Язык Макроассемблера
Часть 2.Ассемблер
Вторая часть книги
2.1.Программная модель микропроцессора
2.1.1.Пользовательские регистры
Регистры общего назначения
Сегментные регистры
Сегмент кода
Сегмент данных
Дополнительный сегмент данных
Регистры состояния и управления
Таблица 1. Флаги состояния
Таблица 2. Системные флаги
2.1.2.Системные регистры микропроцессора
Регистры управления
Регистры системных адресов
Регистры отладки
2.2.Структура программы на ассемблере
2.2.1.Синтаксис ассемблера
Перемещаемые операнды
Счетчик адреса
Регистровый операнд
Базовый и индексный операнды
Таблица 1. Операторы сравнения
Логические операторы
Оператор переопределения типа
Оператор получения сегментной составляющей адреса выражения
Таблица 2. Операторы и их приоритет
2.2.2.Директивы сегментации
BYTE — выравнивание не выполняется. Сегмент может начинаться с любого адреса памяти; WORD
PARA. Атрибут комбинирования сегментов
PRIVATE — сегмент не будет объединяться с другими сегментами с тем же именем вне данного модуля; PUBLIC
SEGMENT и ENDS
Таблица 3. Упрощенные директивы определения сегмента
Таблица 4. Идентификаторы, создаваемые директивой MODEL
Таблица 5. Модели памяти
Таблица 6. Модификаторы модели памяти
2.3.Простые типы данных ассемблера
2.4.Некоторые итоги
Часть 3.Команды Ассемблера
3.1.1.Команды пересылки данных общего назначения
3.1.2.Команды ввода-вывода в порт
3.1.3.Команды работы с адресами и указателями памяти
3.1.4.Команды преобразования данных
3.1.5.Команды работы со стеком
3.2.Арифметические команды
3.2.1.Целые двоичные числа
3.2.2.Десятичные числа
3.3.Арифметические операции над целыми двоичными числами
3.3.1.Сложение двоичных чисел без знака
3.3.2.Сложение двоичных чисел со знаком
3.3.3.Вычитание двоичных чисел без знака
3.3.4.Вычитание двоичных чисел со знаком
3.3.5.Вычитание и сложение операндов большой размерности
3.3.6.Умножение чисел без знака
3.3.7.Умножение чисел со знаком
3.3.8.Деление чисел без знака
3.3.9.Деление чисел со знаком
3.4.Вспомогательные команды для целочисленных операций
3.4.1.Команды преобразования типов
3.4.2.Другие полезные команды
3.5.Арифметические операции над двоично-десятичными числами
3.6.Арифметические действия над неупакованными BCD-числами
3.6.2.Вычитание неупакованных BCD-чисел
3.6.3.Умножение неупакованных BCD-чисел
3.6.4.Деление неупакованных BCD-чисел
3.7.Арифметические действия над упакованными BCD-числами
3.7.1.Сложение упакованных BCD-чисел
3.7.2.Вычитание упакованных BCD-чисел
3.8.Логические команды
3.8.1.Логические данные
3.8.2.Логические команды
3.8.3.Команды сдвига
Команды линейного сдвига
Команды циклического сдвига
3.8.4.Дополнительные команды сдвига
3.9.Команды передачи управления
3.9.1.Безусловные переходы
Команда безусловного перехода jmp
3.9.2.Условные переходы
Команда сравнения cmp
Таблица 2. Перечень команд условного перехода для команды cmp операнд_1,операнд_2
Команды условного перехода и флаги
Команды условного перехода и регистр ecx/cx
Организация циклов
Часть 4.Сложные типы данных
4.1.1.Описание и инициализация массива в программе
4.1.2.Доступ к элементам массива
4.1.3.Двухмерные массивы
Эффективный адрес mas(2, 3) = mas + 4 * 1 * 2 + 3 = mas + 11
4.1.4.Типовые операции с массивами
4.2.1.Описание шаблона структуры
4.2.2.Определение данных с типом структуры
4.2.3.Методы работы со структурой
4.4.1.Описание записи
4.4.2.Определение экземпляра записи
4.4.3.Работа с записями
Выделение элемента записи
Работа с элементом записи
Помещение измененного элемента на его место в запись
4.4.4.Записи: дополнительные возможности обработки
Приложение А
Атрибут выравнивания сегмента
Атрибут комбинирования сегментов
Атрибут размера сегмента
Атрибут класса сегмента