adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
тельности, не зависящей от структуры магистрали, большинство
программ ориентируют словные операнды из двойных слов на гра-
ницах двойных слов и т.п.
є 5 є 4 є 3 є 2 є 1 є 0 є Относительные адреса-1
ИНННННКНННННКНННННКНННННКНННННКНННННКНННННННННННННННННННННННН
<ННННННННННННННН возрастание порядка - 2
7 0
ЙНННННН»
є є 3
є є байт порядкового
ИННННННј
ИННННЛННННННј
4 є
величина ННННННј
31 0
ЙНЛННННННННННННННННННННН»
є є є 5
є є є двойное слово целого
ИНКНННННННННННННННННННННј
єИНННННН величина Н 4 Нј
ИННННННН знак 6
7 0
ЙНННННН»
є є 7
є є неупакованное
ИННННННј десятичное
7 3 0
ЙНННЛНН»
є є є 8
є є є упакованное
ИНННКННј десятичное
ЙНННННЛН НЛНННННЛНННННЛНННННЛНННН»
є є є є є є є 9
є є є є є є є строка байтов
ИНННННКН НКНННННКНННННКНННННКННННј
10 младший байт ННННННј
31 0
ЙННННННННННННННННННННННН»
є є 11
є є локальный указатель
ИНННННННННННННННННННННННј
47 31 0
ЙННННННННЛННННННННННННННННННННННН»
є є є 12
є 13 є 14 є глобальный указатель
ИННННННННКНННННННННННННННННННННННј
ИННННННННјИННННННННННННННННННННННј
селектор смещение
2.3.2. Типы данных математического сопроцессора
Математический сопроцессор 80287 или 80387 добавляют к
типам данных и командам процессора 80386 свои, приведенные в
табл.2-2. В большинстве прикладных задач входные величины и
получаемые результаты хранятся в виде типов целых, действи-
тельных или упакованных десятичных, а для промежуточных вели-
чин имеется тип данных промежуточное действительное, расши-
ренный диапазон и точность которого в сложных вычислениях
сводят к минимуму ошибки округления, переполнения и исчезно-
вения порядка. В соответствии с такой моделью математический
сопроцессор производит большую часть вычислений над промежу-
точными величинами, хранящимися в его регистрах. При загрузке
любого типа данных в регистровый стек, этот тип автоматически
меняется на промежуточный действительный. Промежуточная дейс-
твительная величина в регистре, в свою очередь, может быть
переведена в любой другой тип с помощью команды запоминания.
На рис.2-8 Показано, как типы данных математического
сопроцессора хранятся в памяти.
Таблица 2-2.
Главные типы данных и команды математического
сопроцессора
ЙННННННННННННННЛННННННННННННННЛННННННННННННННННННННННННННННН»
є Тип є Разрядность є Команды є
МННННННННННННННОННННННННННННННОННННННННННННННННННННННННННННН№
єЦелое є 16,32,64 бит єЗагрузка, запоминание, срав-є
є є єнение, сложение, вычитание,є
є є єумножение, деление є
МННННННННННННННОННННННННННННННОННННННННННННННННННННННННННННН№
єУпакованное є 18 цифр єЗагрузка, запоминание є
єдесятичное є є є
МННННННННННННННОННННННННННННННОННННННННННННННННННННННННННННН№
єДействительноеє 32,64 бит єЗагрузка, запомонание, срав-є
є є єнение сложение, вычитание,є
є є єумножение, деление є
МННННННННННННННОННННННННННННННОННННННННННННННННННННННННННННН№
єПромежуточное є 80 бит єСложение, вычитание, умноже-є
єдействительноеє єние, деление, извлечениеє
є є єквадратного корня, масштаби-є
є є єрование остатка, вычислениеє
є є єчасти целого, смена знака,є
є є євычисление абсолютной величи-є
є є єны, выделение порядка и ман-є
є є єтиссы, сравнение, осмотр,є
є є єпроверка, обмен, арктангенс,є
є є є2-1,Y*LOG(X+1),Y*LOG(X), заг-є
є є єрузка константы (0.0, П, иє
є є єт.д.) (80387 добавляет синус,є
є є єкосинус, синус и косинус, не-є
є є єупорядоченное сравнение). є
ИННННННННННННННКННННННННННННННКНННННННННННННННННННННННННННННј
є Относительные
є 9 є 8 є 7 є 6 є 5 є 4 є 3 є 2 є 1 є 0 є адреса - 1
ИНННКНННКНННКНННКНННКНННКНННКНННКНННКНННКННННННННННННННННН
<ННННННННННННННН возрастание порядка - 2
79 71 3 0
ЙНННННННЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛНЛН» упаковочное
є є є є є є є є є є є є є є є є є є є десятичное
ИНННННННКНКНКНКНКНКНКНКНКНКНКНКНКНКНКНКНКНј 5
є ИНННННННН 4 величина НННННННННННННННј
ИННННННН знак - 3
31 23 0
ЙНЛННННННЛННННННННННННН» 7
є є є є неполное
є є є є действительное
ИНКННННННКНННННННННННННј
єИНННЛННјИН величина Нј
є ИНННННННН смещенный порядок 6
ИННННННННННННН знак
60 51 0
ЙННЛНННННННННННННЛННННННННННННННННННННННННННН» 8
є є є є полное
є є є є действительное
МННКНННННННННННННКНННННННННННННННННННННННННННј
є ИННННННЛННННННј ИННННН величина ННННННННННј
є ИНННННН смещенный порядок
ИННННННННННННННН знак
79 62 0
ЙНЛНННННННННННЛННЛННННННННННННННННННННННННННН» промежуточное
є є є є є действие
ИНКНННННННННННКННКНННННННННННННННННННННННННННј 9
є ИНННННЛНННННј ИННННН 4 величина ННННННННј
є ИНННННННННННННННННН смещенный порядок
ИННННННН знак - 3
Рис.2-8.Примеры хранения типов данных математического
сопроцессора
2.3.3. Другие команды
Не все команды процессора 80386 связаны с типами данных.
Такие команды рассматриваются в нижеследующих параграфах.
2.3.3.1. Команды операций со стеком
Стек процессора 80386 является стеком двойных слов, ос-
нование и вершина которого определяются регистрами, соответс-
твенно, SS и ESP. Команда PUSH заносит двойное слово в стек,
а команда POP извлекает с вершины стека двойное слово и хар-
нит его в регистре памяти или в памяти. По команде PUSH ALL в
стек заносятся все общие регистры, а по команде POP ALL про-
изводится обратная операция.
Команда INTER (входа в процедуру) и LEAVE (выхода из
процедуры) предназначены для языков высокого уровня с блочной
структурой. По команде ENTER создается кадр и образ стека,
которые компиляторы используют для связки вызовов процедур.
По команде LEAVE кадр стека и образ удаляются из стека для
подготовки возврата к процедуре, сделавшей вызов.
2.3.3.2. Команды передачи управления
Команда JUMP (переход) передает управление другой коман-
де путем замены содержимого счетчика команд. Новая команда
может быть в том же кодовом сегменте (со смещение до 2 байт)
или совсем в другом. Операндом внутрисегментного перехода яв-
ляется локальный указатель, т.е. смещение новой команды в те-
кущем кодовом сегменте; переход таким образом, может быть
сделан к любой ячейке в максимально возможном сегменте. Опе-
рандом межсегментного перехода является глобальный указатель,
что позволяет передавать управление в любую точку сегмента.
(Поле селектора в глобальном указателе замещает величину в
регистре CS, а поле смещение - величину в EIP). В системе ко-
манд также имеется полный набор команд условных переходов,
ветвление которых основано на величине флага статуса; эти ко-
манды могут передавать управление ячейкам, которые также сме-
щены на максимум 2 байта.
Вызов процедур и функций (подпрограмм) производится по
командам CALL (вызов), а возврат к вызывавшей подпрограмме
осуществляется с помощью команды RETURN (возврат). Так же,
как команды перехода, вызовы внутри сегмента имеют своими
|
adfun.ru
|
|
|
|