Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
БИЛЕТ 9
Микропроцессор работает с двоичными числами со знаком и без знака, длиной 8 бит (1 байт), 16 бит (2 байта) или 32 бита (4 байта), с двоично-десятичными числами длиной 8 бит (BCD - числа) и с десятичными числами длиной 8 бит.
Байт - это число без знака в диапазоне от 0 до 255 или число со знаком в диапазоне от - 128 до +127.
Слово - это число без знака в диапазоне от 0 до 65535 или число со знаком, то от - 32768 до +32767.
Для 32-разрядных процессоров определены операции над двойными словами. Двойное слово - это число без знака в диапазоне от 0 до 4294967295, или число со знаком в диапазоне от -2147483648 до +2147483647.
Для чисел со знаком старший бит является знаковым: для положительных чисел он равен нулю, а для отрицательных чисел - единице.
Отрицательные числа представлены в дополнительном коде, который получается путем инвертирования всех разрядов положительного числа и суммирования полученного кода с единицей в младшем разряде.
Микропроцессор может выполнять арифметические операции над двоично-десятичными числами, хранящимися в упакованном (2 цифры в байте) формате, и над десятичными числами в неупакованном (1 цифра в байте) формате. Упакованный формат предполагает, что байт содержит две десятичные цифры, занимающие старший и младший полубайты. Диапазон представимых чисел составляет от 0 до 99. В неупакованном формате байт содержит одну десятичную цифру, которая обычно кодируется в символьном коде ASCII. Цифра 0 кодируется как 30Н, а цифра 9 - как 39Н.
Символьные данные хранятся в стандартном символьном коде ASCII, каждый символ занимает 1 байт. Микропроцессор ничего не знает об ASCII-коде и рассматривает символьные данные как цепочки произвольных байтов, то есть последовательность кодов символов.
Указатели применяются для обращения к некоторым объектам в памяти, например адресам процедур или адресам меток. Близкий (NEAR) внутрисегментный указатель - это 16-битное или 32-битное смещение (в зависимости от разрядности микропроцессора) от базового адреса того сегмента, в котором находится указатель.
Далекий (FAR) межсегментный указатель применяется в тех случаях, когда программа осуществляет передачу управления в другой сегмент. Такой указатель определяет адрес сегмента и смещение внутри сегмента.
Микропроцессоры семейства 8086 могут оперировать цепочками(строками) байт, слов и двойных слов (32-разрядные процессоры). Под цепочкой понимается последовательность взаимосвязанных элементов, хранящихся по соседним адресам. Длина цепочки не может превышать длину сегмента. Система команд процессора имеет набор цепочечных примитивов, позволяющих эффективно работать с цепочками.
ВОПРОС2
Сопроцессор поддерживает представление чисел в следующих форматах: целые двоичные, целые двоично-десятичные и вещественные двоичные числа.
Целые двоичные числа могут быть представлены в трех различных форматах:
1. Целое слово - 16 бит (DW);
2. Короткое целое слово - 32 бита (DD);
3. Длинное целое слово - 64 бита (DQ);
Все они представимы в обычном формате целых чисел со знаком.
Двоично-десятичные целые числа представлены в упакованном двоично-десятичном формате размером 80 бит (DT), при этом каждая десятичная цифра кодируется четырьмя двоичными разрядами.
1 бит |
7 бит |
72 бита |
|||
S |
d17 |
........ |
d1 |
d0 |
|
Знак |
Не исп. |
4 бита=1 цифра |
Вещественные числа могут быть представлены тремя различными форматами:
1. Короткое вещественное (одинарная точность) -32 бита (DD);
1 бит |
8 бит |
23 бита |
|
S |
порядок |
мантисса |
DD |
2. Длинное вещественное (двойная точность) - 64 бита (DQ);
1 бит |
11 бит |
52 бита |
|
S |
порядок |
Мантисса |
DQ |
3. Временное вещественное (расширенная точность) - 80 бит (DT);
1 бит |
15 бит |
64 бита |
|
S |
Порядок |
мантисса |
DT |
1) S- поле знака: равно нулю, если число положительное и равно 1, если число отрицательное;
Для представления нуля используются нулевой порядок и нулевая мантисса, следовательно существует два нуля: положительный и отрицательный. Обычно этот факт скрыт от программиста - в командах сравнения оба пуля считаются одним числом.
2) Поле мантиссы.
В сопроцессоре принята “научная нотация“ представления чисел. При этом предполагается, что поле мантиссы представимо в виде Х.ХХ...Х, где старший бит, находящийся слева от точки должен быть не равен нулю. Для двоичной системы счисления это означает, что старший бит должен быть равен единице. Следовательно, его можно не хранить, что и сделано в форматах одинарной и двойной точности для расширения диапазона представления чисел. В формате с расширенной точностью старший бит хранится явно, так как дополнительная точность не требуется, а вычисления происходят быстрее.
3) Поле порядка. Порядок - это степень числа два, на которое надо умножить мантиссу.
Для представления отрицательных порядков в поле порядка хранится сумма истинного порядка и смещение. Для одинарной точности смещение равно 127. Для двойной точности смещение равно 1023. Для расширенной точности смещение равно 16383.
Если поле порядка составляет 8 бит как в формате с одинарной точностью, то максимальное значение порядка составляет 28-1 = 255 , то есть диапазон хранимых порядков рассчитывается следующим образом:
255 - 127 = 128 максимальный порядок;
0 - 127 = -127 минимальный порядок.
Аналогично можно рассчитать диапазоны хранимых порядков для форматов чисел с двойной и расширенной точностью.
Так как во всех форматах чисел минимальное и максимальное значения порядков зарезервированы для обработки особых случаев, то реальный диапазон порядка нормализованных чисел меньше на два для всех форматов чисел, то есть для чисел с одинарной точностью максимальный порядок равен 127 ,а минимальный порядок равен 126.
Формат чисел с двойной точностью позволяет получить произведение двух чисел с одинарной точностью без потери точности.
Формат чисел с расширенной точностью предназначен для представления промежуточных результатов при работе с числами в формате с двойной точностью. Существует три причины выбора 80 разрядного представления чисел в формате с расширенной точностью:
Исследования показали, что для самых сложных для вычислений математических функций не происходит потери точности при получении окончательных результатов в формате чисел с двойной точностью, если размер мантиссы составляет не менее 64 бит, при этом порядок составляет 15 бит и общий минимальный размер двоичного числа составляет 80 бит;
Для того чтобы использовать более привычное 16-байтное представление чисел с расширенной точностью (128 бит) требуются более сложные схемы процессора или при тех же схемах будет меньшая производительность процессора;
Цель формата расширенной точности - защита промежуточных результатов. Если взять удобный 16-байтный формат, то может случиться, что все вычисления будут производиться в нем и тогда надо расширять точность для промежуточных результатов и так далее.
Внутреннее представление нормализованных чисел:
Min число < 0 |
Max число < 0 |
|||||||
знак |
порядок |
мантисса |
знак |
Порядок |
Мантисса |
|||
1 |
1...10 |
11...1 |
1 |
0…01 |
00…0 |
|||
+1 |
+1 |
|||||||
Min число > 0 |
Max число < 0 |
|||||||
Знак |
порядок |
мантисса |
знак |
порядок |
Мантисса |
|||
0 |
0...01 |
00...0 |
0 |
1…10 |
11…1 |
|||
+1 |
+1 |
Единица подразумевается в старшем разряде мантиссы для чисел в формате с одинарной и двойной точностью. Дивпазоны представлеения десятичных чисел в двоичных вещественных форматах:
а) с одинарной точностью:
-3.37*1038 / -1.17*10-37
+1.17*10-37 / +3.37*1038
б) с двойной точностью:
-1.67*10308 / -2.23*10-307
+2.23*10-307 / +1.67*10308
в) с расширенной точностью:
-1.2*104932 / -3.37*10-4931
+3.37*10-4931 / +1.2*104932
Для денормализованных операндов выполняются следующие правила формирования результатов операций:
Результат равен 0, если он слишком мал для представления денормализованным числом (например, при умножении двух денормализованных чисел).
Результат - денормализованное число, если он представим в формате денормализованных чисел ( например, при сложении двух денормализованных чисел).
Результат - нормализованное число, если неточность денормализованного числа влияет на результат меньше, чем ошибка округления (например, при сложении денормализованного и большого нормализованного числа).
Результат - ненормализованное число, если результат слишком велик для денормализованного числа, неточный, а приемник имеет расширенную точность (например, при сложении денормализованного и большого нормализованного числа).
Ненормализованным числом называется число с расширенной точностью, имеющее обычное (ненулевое и неединичное) поле порядка и нулевой старший бит мантиссы.
Ненормализованные операнды в операциях подчиняются правилам для денормализованных чисел. Особый вид ненормализованного числа - псевдоноль. Псевдоноль имеет ненулевое поле порядка и нулевую мантиссу. В сравнениях псевдонули считаются нулями. Данный формат чисел поддерживается сопроцессором модели 80287 и не поддерживается моделью 80387 и устройством с плавающей точкой процессора 80486 и последующих моделей, так как уточнился стандарт представления чисел с плавающей точкой.
Результат - особый случай недействительной операции (наример, при делении на денормализированное число или попытке извлечения квадратного корня из денормализованного числа).