омлення про помилку, якщо адреси операндів довжиною в слово або подвійне слова не будуть кратні двом і чотирьом відповідно. p>
4. Оперативна пам'ять
Оперативна пам'ять складається з байтів, кожен байт складається з 8 інформаційних бітів.
32-х розрядний процесор може працювати з ОП розміром до 4Гбайт і, отже, адреси байтів змінюються від 0 до 2 32 - 1 (00000000 16 - FFFFFFFF 16).
Байти пам'яті можуть об'єднуватися в поля фіксованої і змінної довжини. Фіксована довжина - слово (2 байти) або подвійне слово (4 байти). Поля змінної довжини можуть містити довільну кількість байтів. Адресою поля є адреса молодшого входить до поле байта. Адреса поля може бути будь-яким. ОП може використовуватися як безперервна послідовність байтів, так і як сегментована.
Фізична адреса (ФА) байта записується як <сегмент>: <зміщення>, тобто він може бути отриманий за формулою ФА=АС + ІА, де АС - адреса сегмента, ІА - виконуваний адресу, <зміщення> формується в команді різними способами залежно від способу адресації операндів. У захищеному режимі програма може визначити до 16 383 сегментів розміром до 4 Гбайт, і таким чином може працювати з 64 Тбайт віртуальної пам'яті. Для реального режиму АС визначається сегментним регістром і для отримання двадцатіразрядного довічного адреси байта необхідно до вмісту сегментного регістра, зміщеного на 4 розряду вліво, додати Шестнадцатіразрядное зміщення - ІА. Наприклад, адреса наступної виконуваної команди:
ФА=(CS) + (IP)
(CS)=7A15 16=01111010000101010000 2,
(IP)=C7D9 16=1100011111011001 2.
ФА=86929 16=10000110100100101001 2
5. Формати даних
Процесор ix86 разом з співпроцесором можуть обробляти великий набір різних типів даних: цілі числа без знака, цілі числа зі знаком, дійсні числа з плаваючою точкою, двійковій-десяткові числа, символи, рядки, покажчики. Цілі числа без знака можуть займати байт, слово, подвійне слово і приймати значення з діапазонів: 0 - 255, 0 - 65535, 0 - 4294967295 відповідно.
Цілі числа зі знаком можуть займати також байт, слово, подвійне слово. Вони зберігаються в додатковому коді і мають наступний вигляд:
Додатковий код позитивного числа дорівнює самому числу. Додатковий код негативного числа в будь-якій системі числення може бути отриманий за формулою:
X=10 n - | X |,
де n - розрядність числа.
Наприклад, представимо у слові негативне 16-ковий число AC7 16
4 жовтня - AC7=F539.
Додатковий код двійкового числа може бути отриманий інверсією розрядів і додатком 1 до молодшого розряду.
Наприклад, число - 12 представимо в байті:
1) 12=00001100 2,
) інверсія - 11110011 2,
) доподаткові код - 11110100 2.
Розглянемо виконання операції віднімання в машині: додатковий код від'ємника додається до зменшуваного.
Наприклад: 65 - 42=23.
1) 65=01000001 2,