Курс, 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 — выравнивание не выполняется. Сегмент может начинаться с любого адреса памяти; WORDPARA. Атрибут комбинирования сегментовPRIVATE — сегмент не будет объединяться с другими сегментами с тем же именем вне данного модуля; PUBLICSEGMENT и 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.Безусловные переходыКоманда безусловного перехода jmp3.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 + 114.1.4.Типовые операции с массивами4.2.1.Описание шаблона структуры4.2.2.Определение данных с типом структуры4.2.3.Методы работы со структурой4.4.1.Описание записи4.4.2.Определение экземпляра записи4.4.3.Работа с записямиВыделение элемента записиРабота с элементом записиПомещение измененного элемента на его место в запись4.4.4.Записи: дополнительные возможности обработкиПриложение ААтрибут выравнивания сегментаАтрибут комбинирования сегментовАтрибут размера сегментаАтрибут класса сегмента