Лабораторная работа №1

Типы и форматы операндов в архитектуре системы команд современных ЭВМ

Цель работы : изучение общих (базовых) типов операндов машинных команд, методов преобразования и действий над ним.

1. Теоретическая справка.

Системой команд вычислительной машины называют полный перечень команд, которые способна выполнять данная ВМ. В свою очередь, под архитектурой системы команд принято определять те средства ВМ, которые видны и доступны программисту.

Машинные команды оперируют данными, которые в этом случае называются операндами. К наиболее общим (базовым) типам операндов можно отнести: адреса, числа, символы и логические данные. Помимо них ВМ обеспечивает обработку и более сложных информационных единиц: графических изображений, аудио-, видео- и анимационной информации. Такая информация является производной от базовых типов данных и хранится в виде файлов на внешних запоминающих устройствах. Для каждого типа данных в ВМ предусмотрены определенные форматы.

Числовая информация может быть представлена в форме с фиксированной и плавающей запятой. При представлении числа Х в форме с фиксированной точкой (естественной форме) указываются знак числа и модуль числа в q-ичном коде. q - основание системы счисления или база. Для современных ЭВМ характерна двоичная система, но иногда используется восьмеричная или шестнадцатеричная. Знак положительного числа кодируется 0, а отрицательного 1.

Числам соответствует запись вида: X= ± a n -1 a 1 a 0 a -1 a -2 a - r . В общем случае разрядная сетка ВМ для размещения чисел в форме с фиксированной запятой имеет вид:

 

Целая часть числа

 

Дробная часть числа

 

q n-1

 

q 1

q 0

 

q -1

q -2

 

q -r

Знак

a n-1

a 1

a 0

,

a - 1

a -2

 

a -r

Целочисленные форматы (или форматы с фиксацией запятой после младшего разряда) бывают знаковые и беззнаковые. Наиболее частое распространение получили целочисленные форматы при работе с адресами.

Недостатком целочисленных форматов является ограничение верхнего и нижнего диапазона чисел, которые можно представить данным образом и ограниченная точность представления чисел.

От недостатков формы с фиксированной запятой в значительной степени свободна форма представления чисел с плавающей точкой (нормальная форма). В нормальной форме число представляется в виде произведения , где m – мантисса числа; q – основание системы счисления; р – порядок.

   

Модуль порядка

 

Модуль мантиссы

Знак m

Знак p

p r-1

...

p 1

p 0

.

m -1

m -2

...

m -n

Нормальная форма неоднозначна, так как взаимное изменение m и p приводит к "плаванию" запятой, чем и обусловлено название этой формы. Для однозначности представления чисел в ЭВМ используется нормализованная форма, в которой положение точки всегда задается перед первой значащей цифрой мантиссы. В большинстве вычислительных машин для упрощения операций над порядками последние приводят к целым положительным числам, применяя так называемый смещенный порядок, который определяется как сумма текущего порядка и смещения. Обычно смещение выбирается равным половине представимого диапазона порядков. Следует отметить, что смещенный порядок занимает все биты поля порядка, в том числе и тот, который ранее использовался для записи знака порядка. Рекомендуемый для всех ВМ формат представления чисел с плавающей запятой определен стандартом IEEE 754. Этот стандарт был разработан с целью облегчить перенос программ с одного процессора на другие и нашел широкое применение практически во всех процессорах.

Бит

8 битов

23 бита

знака

Смещенный порядок

Мантисса

m

p r

p r-1

p 1

p 0

m -1

m -2

m -n

А) одинарный

Бит

11 битов

52 бита

знака

Смещенный порядок

Мантисса

Б) двойной

Стандарт определяет 32-битовый (одинарный) и 64-битовый (двойной) форматы (рис а и б) с 8- и 11-разрядным порядком соответственно. Основанием системы счисления является 2. В дополнение, стандарт предусматривает два расширенных формата, одинарный и двойной, фактический вид которых зависит от конкретной реализации. Расширенные форматы предусматривают дополнительные биты для порядка (увеличенный диапазон) и мантиссы (повышенная точность).

Точность представления чисел с плавающей запятой также ограничивается разрядностью мантиссы и порядка.

В общем объеме вычислительных действий все большая доля приходиться на обработку символьной информации, содержащей буквы, цифры, знаки препинания, математические и другие символы. Каждому символу ставится в соответствие определенная двоичная комбинация. Совокупность возможных символов и назначенных им двоичных кодов образует таблицу кодировки. В настоящее время применяется множество различных таблиц кодировки. Объединяет их весовой принцип, при котором веса кодов цифр возрастают по мере увеличения цифры, а веса символов увеличиваются в алфавитном порядке. До недавнего времени наиболее распространенным были кодовые таблицы, в которых символы кодируются с помощью восьмиразрядных двоичных комбинаций (байтов), позволяющих представить 256 различных символов: EBCDIC (Extended Binary Coded Decimal Interchange Code) и ASCII (American Standar d Code for Information Interchange). Хотя код ASCII достаточно удобен, он все же слишком тесен и не вмещает множества необходимых символов. По этой причине в 1993 году был разработан 16-битовый стандарт ISO 10646, определяющий универсальный набор символов (UCS, Universal Character Set). Этот код, известный под названием Unicode, позволяет задать до 65536 символов, то есть дает возможность одновременно представить символы всех основных "живых" и "мертвых" языков. Для букв русского алфавита выделены коды 1040-1093. В "естественном" варианте кодировки Unicode, известном как USC-2, каждый символ описывается двумя последовательными байтами m и n, так что номеру символа соответствует численное значение 256*m+n. Таким образом, кодовый номер представлен 16-разрядным двоичным числом. Стандарт Unicode обратно совместим с кодировкой ASCII, однако если в ASCII для представления схожих по виду символов (минус, тире, знак переноса) применялся общий код, в Unicode каждый из этих символов имеет уникальную кодировку.

Элементом логических данных является (булева) переменная, которая может принимать лишь два значения: "истина" и "ложь". Кодирование логической информации принято осуществлять битом информации: единицей кодируют истинное значение, нулем - ложное. Как правило, ВМ оперируют наборами логических переменных длиной в машинное слово. Обрабатываются такие слова с помощью команд логических операций (И, ИЛИ, НЕ и т.д.) при этом все биты обрабатываются одинаково, но независимо друг от друга, то есть никаких переносов между разрядами не возникает.

2. Задания и порядок выполнения работы.

Задание 1. Выберите количество разрядов для записи целой и дробной части в формате с фиксированной запятой,

а) чтобы обеспечить точность представления чисел не хуже s ;

б) при условии, что обрабатываются числа | х | < g , для целой части числа. Укажите максимально возможную в этом случае точность представления при указанном количестве разрядов ( третья строка таблицы).

в) укажите количество разрядов, необходимых для выполнения двух вышеперечисленных условий одновременно.

Вариант

1

2

3

4

5

6

7

8

База

8

16

2

2

8

16

2

2

Кол-во разрядов

16

16

16

64

32

32

32

64

g

100

10

19

100

10

10000

10

7

s

10 -6

10 -9

0,01

10 -4

10 -8

10 -12

0,0001

10 -5

Задание 2 Представьте следующие числа в 32- битовом (одинарном) и 64-битовом (двойном) формате стандарта IEEE 754.

Вариант

1

2

3

4

5

6

7

8

Число

0,0131

0,00007

781,6

10,878

1,12

3164

87,001

11134.87

Задание 3 Составьте блок-схему алгоритма перекодировки русских символов

Вариант

Формулировка задачи

1

из расширенной кодировке ASCII (русские символы с 202 кода) в соответствующий код Unicode

2

Из Unicode в кодировку ASCII (русские символы коды 150-203)

3

из расширенной кодировке ASCII (русские символы с 128 кода и только четные коды) в соответствующий код Unicode

4

Из Unicode в кодировку ASCII (русские символы с кода 128 и только четные)

5

из расширенной кодировке ASCII (русские символы с 129 кода и только нечетные коды) в соответствующий код Unicode

6

Из Unicode в кодировку ASCII (русские символы с кода 128 и только нечетные)

7

Из Unicode в кодировку ASCII (русские символы с кода) в обратной последовательности

8

Из расширенной кодировке ASCII (русские символы с 129, располагаются в обратной последовательности) в соответствующий код Unicode

3. Содержание отчета

   Отчет о лабораторной работе должен содержать:

Hosted by uCoz