ify"> -38 ... 10 38 10 -308 ... 10 308 10 -4932 ... 10 4932 Розмірність порядку k81115 (2 k-1 -1) +127102316383 Діапазон P зміщений 0 ... 2550 ... 20470 ... 32767 Діапазон порядку-126 ... 127-1022 ... 1023-16382 ... 16383
Числа, подані з звичайної точністю, займають менше місця в пам'яті, а числа з подвоєною точністю значно збільшують точність обчислень.
У курсовому проекті винятку не розглядаються. У всіх процесорах розміри регістрів і комірок пам'яті фіксовані, що обмежує систему представимо чисел. Обмеження стосуються як діапазону, так і точності представлення чисел, тобто система машинних чисел виявляється кінцевої і дискретною, утворюючи підмножина дійсних чисел.
.3 Формати команд
Майже всі команди оперують 8/16/32-бітнимі регістрами процесору. У більшості команд із зверненням до пам'яті допускається застосування базових та індексних регістрів. Базовим регістром може служити будь-який з восьми регістрів загального призначення, а індексним - будь-який з них, крім ESP. У більшості команд із зверненням до пам'яті допускається Масштабированное індексування, тобто вміст індексного регістра до використання його в адресних обчисленнях можна помножити на 2, 4 або 8. Цей новий режим адресації спрощує операції над багатовимірними масивами. p align="justify"> У більшості команд із зверненням до пам'яті дозволяється використовувати будь-який з шести сегментних регістрів. Звичайно, у всіх командах збережені сегментні регістри, приймаються за замовчуванням, але їх можна змінити за допомогою спеціального префікса заміни сегмента. p align="justify"> Базовий формат команди процесора наведений на малюнку 8. Команди складаються з необов'язкових префіксів, одного або двох байт головного коду операції, специфікатора адреси, представленого байтами MOD r/m і sib, зміщення в команді (displacement) і безпосередніх даних. Англійські абревіатури означають наступне: Base - база, MODe - режим, Register/Memory - регістр/память, Scale - масштаб, Index - індекс. З усіх полів команди обов'язковими є тільки один або два байти коду операції. Залежно від способу адресації команди мають довжину від одного до 15 байт. p align="justify"> Префікс - це байт із спеціальним кодуванням, який модифікує операцію однієї знаходиться за ним команди. У системі команд процесора i486 передбачені наступні префікси:
повторення, застосовується в цепочечних командах для автоматичної обробки всіх елементів ланцюжка.
розміру операнда, перемикає 16 - і 32-бітові операнди;
розміру адреси, комутує формування 16 - і 32-бітових адрес;
заміни сегменту, явно визначає сегментний регістр для конкретної команди замість сегментного регістра, прийнятого за замовчуванням.
Префікс команди 0 або 1 байтПрефікс розміру адреси 0 або 1 байтПрефікс розміру операнда 0 або 1 байтПрефікс заміщення сегмента 0 або 1 байт
КОП ВЅ байтMODR/0/1 байтSIB 0/1байтСмещеніе 0,1,2,4 байтНепосредственное значення 0,1 , 2,4 байта Рис. 8. Базовий формат команди
Код операції (Коп) - описує операцію, виконувану командою. Деяким командам притаманні кілька кодів операцій, кожен з яких описує певний варіант операції. p align="justify"> Описувач регістра - в команді можуть бути описані один або два регістри в якості операндів. Описувач регістра може бути присутнім як в байті коду операції, так і в байті описувача режиму операції (у першому випадку код операції увазі використання певного регістра в якості одного з операндів, у другому випадку використовуваний регістр вказується в трьох бітах поля REG). p align="justify"> Описувач режиму адресації. Цей елемент, якщо він присутній, описує, чи є операнд вмістом регістру або комірки пам'яті. Якщо операнд знаходиться в пам'яті, описувач режиму вказує, чи треба використовувати зсув, індексний регістр, регістр бази і масштабування (Йдеться про поле MOD байта MODR/M). Більшість команд, що посилаються на операнд, що знаходиться в пам'яті, містять після байти (або байтів) основного коду операції ще байт форми адресації. Цей байт описує використовувану форму адреси. Певні значення ко...