Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
1.Система команд арифметического сопроцессора. Арифметические команды
Система команд сопроцессора состоит из четырех групп команд: команды передачи данных, основные вычислительные команды, команды управления и специальные вычислительные команды.
Команды передачи данных. Включают команды загрузки, запоминания и пересылки.
Команды загрузки. Эти команды (табл. 2.8) позволяют записывать данные из памяти в вершину стека.
Таблица 2.8
Мнемокод команды |
Тип данных |
Выполняемые действия |
FLD addr |
Вещественные |
(аddr)->ST(0) |
FILD addr |
Целые |
|
FBLD addr |
Двоично-десятичные |
Команды запоминания. Эти команды (табл. 2.10) осуществляют передачу данных из вершины стека ST(0) в память.
Таблица 2.10
Мнемокод команды |
Тип данных |
Выполняемые действия |
FST addr |
КВФ, ДВФ |
ST(0) -> (аddr) |
FIST addr |
Целые 16 и 32- разрядные |
ST(0) -> (аddr) |
FSTP addr |
КВФ, ДВФ, ВВФ |
ST(0) -> (аddr) + POP |
FISP addr |
Целые 16, 32 и 64 - разрядные |
ST(0) -> (аddr) + POP |
FBSTP addr |
Двоично-десятичные |
ST(0) -> (аddr) + POP |
Команды пересылки. Эти команды (табл. 2.11) позволяют осуществлять
Таблица 2.11
Мнемокод команды |
Выполняемые действия |
FLD ST(i) |
ST(i) -> ST(0) + PUSH |
FST ST(i) |
ST(0) -> SТ(i) |
FSTP ST(i) |
ST(0) -> ST(i ) + PUSH |
FXCH ST(i) |
ST(0) <-> ST(i) |
передачу данных между различными регистрами стека.
Основные вычислительные команды. Включают в себя различные арифметические команды и команды сравнения.
Элементарные арифметические команды. Эти команды (табл. 2.12)
Таблица 2.12
Мнемокод команды |
Выполняемые действия |
FADD |
ST(0) + ST(1) -> ST(0) |
FSUB |
ST(0) - ST(1) -> ST(0) |
FSUBR |
ST(1) - ST(0) -> ST(0) |
FMUL |
ST(0) x ST(1) -> ST(0) |
FDIV |
ST(0) / ST(1) -> ST(0) |
FDIVR |
ST(1) / ST(0) -> ST(0) |
выполняют четыре арифметических действия над операндами, размещенными в двух верхних элементах стека ST(0) и ST(1) с занесением результата в ST(0). В обычных операциях сложения FADD, вычитания FSUB, умножения FMUL и деления FDIV первый операнд берется из вершины стека ST(0), а второй из следующего элемента ST(1).
Элементарные команды сравнения. Эти команды (табл. 2.14) позволяют сравнивать данные, расположенные в двух верхних регистрах стека ST(0) и ST(1) (команды FCOM, FCOMP, FCOMPP), а также сравнивать с нулем (FTST) и анализировать данные в вершине FXAM. Команды сравнения могут выполняться без изменения состояния стека (FCOM), с выталкиванием одного из сравниваемых данных (FCOMP) и с выталкиванием обоих сравниваемых данных (FCOMPP).
Таблица 2.14
Мнемокод команды |
Выполняемые действия |
FCOM |
ST(0) сравнивается с ST (1) |
FCOMP |
ST(0) сравнивается с ST (1) и выталкивается |
FCOMPP |
ST(0) сравнивается с ST (1) и оба выталкиваются |
FTST |
ST(0) сравнивается с нулем |
FXAM |
ST(0) анализируется |
Команды управления. Включают различные команды управления сопроцессором и насчитывают 15 мнемокодов.
Команда FINIT - начальной инициализации производит действия, аналогичные тем, которые выполняются по внешнему сигналу RESET. Эта команда позволяет в любой момент осуществить начальную установку сопроцессора.
Команды FENI и FDISI - разрешения и запрещения выдачи запросов прерывания на выходе INT арифметического процессора позволяют устанавливать в «1» и сбрасывать в «0» разряд-маску IEM, назначение которого описано выше.
Специальные вычислительные команды. Выполняют специфические операции, которые часто используются при вычислениях (табл. 2.15).
Таблица 2.15
Мнемокод команды |
Содержание команды |
FABS |
Абсолютное значение ST(0) |
FCHS |
Изменение знака ST(0) |
FRNDINT |
Округление ST(0) |
FXTRACT FSQRT |
Выделение мантиссы и порядка ST(0) |
Вычисление квадратного корня из ST(0) |
|
FSCALF |
Масштабирование |
FPREM |
Получение частичного остатка |
FPTAN |
Вычисление частичного тангенса |
FPATAN |
Вычисление частичного арктангенса |
FYL2Х FYL2ХР1 F2XM1 |
ST(0) = ST(1) log2(ST(0)) ST(0) = ST(1) log2(ST(0)+1) ST(0) = 2ST(0) - 1 |
Команда FABS формирует абсолютное значение (модуль) числа, находящегося в вершине стека.
Команда FCHS изменяет знак числа, находящегося в вершине, на противоположный.
Команда FRNDINT производит округление числа, находящегося в вершине стека, до целого. Если исходное число представлено в формате целого, то оно не изменяется командой.
Арифметические команды
В эту группу входят такие команды, как: ADD (сложение), ADC (сложение с переносом), INC (инкремент), AAA (коррекция кода ASCII при сложении), DAA (десятичная коррекция при сложении), SUB (вычитание), SBB (вычитание с заемом), DEC (декремент), NEG (отрицание), СМР (сравнение), AAS (коррекция кода ASCII при вычитании), DAS (десятичная коррекция при вычитании), MUL (умножение), IMUL (умножение целых чисел), ААМ (коррекция кода ASCII при умножении), DIV (деление), IDIV (деление целых чисел), AAD (коррекция кода ASCII при делении), CBW (перевод байта в слово), CWD (перевод слова в двойное слово).
2.
Организация памяти .Модели памяти.
Хранение информации в памяти микропроцессорных систем может быть организовано различными способами. Наиболее часто реализуются следующие варианты организации памяти:
Использование того или иного способа организации памяти определяется функциями системы, объемом памяти и рядом других факторов. Многие микропроцессоры обеспечивают возможности реализации любого из этих способов.
^ Линейная организация. Это наиболее простой способ организации памяти, при котором формируемый процессором адрес непосредственно поступает на адресную шину, обеспечивая обращение к соответствующей ячейке памяти. В этом случае адрес, который формируется процессором в соответствии с заданным в команде способом адресации (линейный адрес), выдается на системную шину как физический адрес выбираемой ячейки памяти.
^ Сегментная организация. Данный способ обеспечивает разбиение памяти на отдельные сегменты (блоки), обращение к которым реализуется в соответствии с определенными правилами. В первую очередь реализуется разделение памяти на область (сегмент) команд и данных. Область данных может подразделяться на сегмент стека и несколько сегментов обрабатываемых данных. Размер сегментов может быть фиксированным (от 64 Кбайт до 4 Гбайт) или переменным (программируемым).
Страничная организация. Этот способ организации памяти предполагает разбиение адресуемых массивов данных или команд на относительно мелкие фрагменты страницы. Типичный объем страницы составляет 4 Кбайт, хотя в ряде микропроцессоров обеспечивается возможность работы со страницами разного размера - от 256 байт до 4 Мбайт. Страницы могут размещаться в различных местах адресуемого пространства памяти, а их расположение определяется специальными таблицами адресов, которые обычно хранятся в ОЗУ. Страничная организация позволяет наиболее полно использовать имеющийся объем памяти, так как обеспечивает разбиение информации и ее размещение в любом свободном фрагменте памяти размером не менее одной страницы.
Модели памяти.
Существует семь моделей памяти, шесть из которых сегментированы и используются при разработке 16-ти разрядных приложений (TINY, SMALL, MEDIUM, COMPACT, LARGE и HUGE); одна модель (FLAT) несегментированная, на ее основе разрабатываются 32-х разрядные приложения:
· TINY (крошечная) состоит из одного сегмента размером до 64К без отдельных разделов для стека и пула.
· SMALL (малая) состоит из двух сегментов: один для секции кода, другой для секции данных. В пределах сегмента данных выделяется ближний пул, возможно обращение к дальнему пулу.
· COMPACT (компактная) состоит из одного сегмента кода и одного сегмента данных, сегмента стека и дальнего пула.
· MEDIUM (средняя) состоит из одного или более сегментов кода и одного сегмента данных. Возможно выделение памяти в дальнем и ближнем пулах.
· LARGE (большая) включает один или более сегментов кода, один сегмент данных, сегмент стека и дальний пул.
· HUGE (огромная) может иметь один или более сегментов данных и кода, стек и дальний пул. Адреса в секции кода нормализованы так, что величина смещения не превышает 0x000F.
· FLAT - 32-х разрядная модель, в состав которой может входить произвольное число сегментов данных, адресуемых в едином пространстве. Модель позволяет адресовать до 2 Гбайт адресного пространства.