Организация на данните в паметта.
1. Основни даннови структури
Основните даннови структури в I80386 са:
а. Байт – 8 бита;
б. Дума – 16 бита;
в. Двойна дума – 32 бита.
Два байта образуват дума, а 4 байта – двойна дума. Затова най-удобно е данните да се разглеждат в паметта като непрекъсната поредица от байтове. Не е задължително думите да са на четен адрес( дели се на 2), а двойните думи на адрес, който се дели точно на 4, но ако това не е спазено, може да се получи намаляване на бързодействието. Ето защо това условие е задължително при подреждане на големи масиви от данни, стекове, таблици.
Поради предварително извличане на инструкциите при конвейерната обработка, не се губи допълнително време, ако инструкциите не са подредени от границите на двойните думи т.е. не се поставят ограничения при подреждането на инструкциите. Малко изключение от това правило се прави при инструкции за преход, когато е желателно, но не задължително инструкцията към която се отива да е на адрес кратен на 4. Това малко увеличава бързодействието.
В добавка към типовете данни, които могат да бъдат обработвани в реален режим, в защитения режим могат да бъдат обработвани следните типове данни:
· 32-битови цели числа без знак. Имат диапазон на възможните стойности от 0 до 232 - 1.
· 32-битови цели числа със знак. Имат диапазон на възможните стойности от -231 до 231 - 1.
· Стринг от байтове. Последователност от байтове с максимален размер до 232 - 1 байта.
2. Разположение на данните в регистрите
Освен в паметта даните могат да се разполагат и във вътрешните регистри.
Регистрите с общо предназначение(РОП) могат да се използват за съхраняване на данни при повечето от аритметичните и логическите операции. В тях могат да се разполагат операнди и резултати от работата на процесора, Могат да се използват при определянето на различни адреси с изключение на регистър ESP, който не може да се използва като индекс. Някой инструкции работят с точно определени РОП, за да се избегне изричното дефиниране на РОП и по този начин да се скъси инструкцията – например инструкциите за вход/ изход(I/O), изместване,цикъл, ротация и др.
3. Адресиране
I80386 използва 14 вида адресиране:
а. Непосредствено – данните са разположени в самата инструкция;
б. Пряко регистрово – данните са разположени в някой от регистрите на в I80386;
в. 12 вида подчиняващи се на общата формула
действителен адрес(ДА) = Б + И*М + О
Базата(Б) и индекса(И) се записват в произволни РОП с ограичението в ESP да не се записва индекс.
Мащабът(М) и отместването(О) се записват в инструкцията.
Нито един от елементите(Б ; И ; М ; О) не е задължителен и по този начин се получават 12 различни комбинации.
I80386 няма възможност за непряко адресиране.
ДА(действителния адрес) все още не е физическия адрес, който реално изира клетка от паметта.
Получаването на физическия адрес става с помощта на устройство за управление на паметта.
В определянето на физическия адрес участва сегментен регистър . Изборът на сегментен регистър става при спазване на следните правила :
Ø задължителни сегментни регистри
CS- за извличане на инструкции;
SS- при инструкции за работа със стек;
ES – при адресиране на резултата в инструкции за работа с низове
Ø подразбиращи се сегментни регистри- при всякакъв вид прехвърляне на данни по подразбиране се използва DS, освен в случаите на работа със стек (SS) и прехвърляне на резултат(ES);
Ø сегментни регистри по избор – във всяка инструкция се допуска използване на префикс, указващ точно кой сегментни регистър да се използва. Единствено ограничение е, че не могат да се променят задължителните сегментни регистри.
Коментари