3384 ИНФОРМАТИКА

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

Целые числа: способы представления и хранения в ЭВМ,

основные операции обращения с числами

 

1.1.  Цель работы

1. Изучение типов численных данных с фиксированной точкой (ФТ) и основных операций обращения с ними.

2. Наработка практических навыков обращения с целыми числами на компьютере (запись, считывание, хранение).

 

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

1. Изучение заданного типа чисел: представление в различных системах счисления (СС) и форматах, запись в память, считывание, диапазоны, организация хранения и др., МУ, Л[1, 2, 4] (дома).

2. Подготовка отчета (дома).

3. Индивидуальный входной контроль (классификация численных данных, перевод из одной СС в другую,  машинные коды (МК), форматы, диапазон, хранение).

4. Работа на компьютере (см. раздел 2).

5. Защита отчета.

 

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

Теоретическая часть:

1. Целые числа: способы представления и хранения (перевод чисел из одной СС в другую - , машинные коды, форматы, диапазоны представимых чисел).

2. Организация хранения данных:

-         элементы хранения данных: регистры, память (основные понятия, принятые обозначения, характеристика);

-         логическая организация памяти, принцип записи многобайтовых чисел в памяти компьютера.

Практическая часть:

1.  Исходное задание (из табл. 1.2).

2.  Таблица результатов по заданию 1 и пояснения к ней (заполняется в ходе выполнения работы по результатам считывания из памяти).

3.  Таблица результатов по заданию 2 и пояснения к ней (заполняется дома).

4.  Фрагмент адресного пространства к заданию 2 (см. рис.1.15).

 

1.4. Методические указания

1.4.1. Целые двоичные числа:

классификация, особенности, основные понятия

В ЭВМ различают два основных типа численных данных:

- целые двоичные числа (Integer) - числа с ФТ;

- вещественные двоичные числа (Rеаl) - числа с плавающей точкой (ПТ).

В данной работе рассматривается 1-й тип чисел, которые,  в свою очередь, делят на знаковые и беззнаковые (рис. 1.1).

 

 

При работе с числами на ЭВМ необходимо

различать:

-  значение числа;

-  внутреннее представление его (внутри

ЭВМ числа представляются в двоичной,

16-ричной, либо двоично-десятичной

форме);

- отображение внутреннего представления

в памяти ЭВМ.

Целое число Х, представленное в ФФТ (точка фиксируется после младшего разряда), например Х=1001112, может иметь различную интерпретацию, две из которых рассматриваются ниже.

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

 

252423222120 (2i – вес i-го дв. разряда),

 

 

и тогда десятичный эквивалент его (Х10) можно определить по формуле (1)

(1)

Т.к. q=2, а коэффициенты двоичного ряда аiÎ{0,1}, то

Х10=1*25+1*22+1*21+1*20=32+4+2+1=39.            (2)

a5 a2 a1 a0

Целое со знаком (старший бит не имеет веса и отображает знак). Единица в знаковом разряде – признак отрицательного числа (3) и, следовательно, приведенная последовательность – машинный код числа Х (как правило дополнительный). Значение Х можно найти по аналогии с (2) только после перехода от кода к числу, т.е. [Х]ДК®Х2 или [Х]ДК®Х16. Внутри ЭВМ информация  представляется в виде чисел, записанных в той или иной СС, кратной степени двойки (двоичной, 16-ричной и др.). При этом, чем больше основание СС q, тем короче запись числа, т.е. тем меньше разрядов требуется для его записи и хранения. Таким образом, ввод, вывод и обработка чисел на ЭВМ связаны с преобразованием их из одной СС в другую(10«2,10«16,16«2 и др.)

 


Перевод десятичных чисел в СС с основанием q(прямой) и обратно 10«Хq)

Правило прямого перевода. Исходное число и последовательно получающиеся частные делятся на q до получения частного  меньше q. Получающиеся при делении остатки являются разрядами числа в новой q-ичной СС. Последний остаток, за который принимается последнее частное, является старшим разрядом числа, т.е. для записи числа Xq остатки записываются в порядке, обратном их получению.

Пример. Десятичное число Х=39 перевести в двоичную и 16-ричную СС, иначе  найти его двоичное и 16-ричное представление десятичного числа, т.е.          Х=39=(  ?  )2 = (  ?  )16.

Процесс перевода поясняется таблицами 1.1 и 1.2, соответственно.

 

 

 

 

Двоичную запись числа можно получить, имея его 16-ричное представление, если каждой 16-ричной цифре (aiÎ{0,1,…,9,A,B,C,D,E,F}) поставить в соответствие тетраду – обычную 4-разрядную двоичную последовательность a3a2a1a0, где aiÎ{0,1}.

Например:

Х=27h=0010 01112-16=1001112.

Для обратного перехода от двоичного числа к 16-ричному заданная двоичная последовательность разделяется на тетрады со стороны мл. разрядов (недостающие дополняются «0») и каждой из них ставится в соответствие 16-ричная цифра.

Например:

2   1   0 i (разряд)

X = 101 1001 11012= 5  9  D  h (десятичный эквивалент этого числа можно

162161160 ¬вес разряда                найти по формуле (1)), т.е.

5      9       D

Х10=5*162+9*161+13*160=1437.


Представление в памяти

Для представления целых чисел в памяти ПК используют три машинных формата: byte, word, long. Форматом числа называют представление его в конкретной разрядной сетке ЭВМ, под которой понимают набор двоичных разрядов для представления машинного слова в конкретной ЭВМ.

Форматы беззнаковых чисел

 

 

Рис.1.2

Форматы числа со знаком

 

 

Рис.1.3

Под знак числа отводится старший бит. Знак кодируется:

 

 

Машинные коды

 

ЭВМ работает не с числами, а с их кодами, т.е. с машинными кодами (МК). Для хранения отрицательных чисел и выполнения арифметических операций широко используется дополнительный код (DК). Правило образования DК для двоичных чисел имеет вид:

Так, если число то DK положительного и отрицательного Х соответственно равны:

 

 

 

[+X]=0.10112;

[-X]DK = +101002 , т.е.

1

1.01012

 

[-X]DK= 1.01012

 

«хвост»

Длина  числа  в  DK  может  быть  увеличена  до любого количества  разрядов

путем копирования (тиражирования) его знакового разряда слева. При этом заданное число Х оказывается «хвостом» двоичной последовательности требуемой длины в 8,16,32, … бит. Например, приведенное число Х в формате байта (8 бит) и слова (16 бит) имеет соответственно вид:

 

 

[X]DK= 1.111 01012 = F5h = 1.111 1111 01012 = FFF5h,

 

«хвост»                              «хвост»

где h – идентификатор 16-ричной СС.

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

 

1.4.2. Диапазон представимых чисел

Диапазон целых чисел определяется неравенством

(5)

и является одним из важнейших понятий при их рассмотрении. Ниже приведены диапазоны чисел для принятых форматов: байт и слово.

 

Байт

а) без знака: Х=00hFFh=0255

б) со знаком: Х=80h7Fh= - 128+127

 

Слово

а) без знака: Х=0000hFFFFh=065535

б) со знаком: Х=8000h7FFFh= - 32768+32767

Следовательно, представление беззнакового числа Х>65535 либо Х>+32767 приведет к переполнению 16-разрядной сетки.

 

1.4.3. Переход от кода к числу, т.е. [X]DK àX

Переход от DK к числу выполняется по тому же правилу (4), что и от числа к коду. Для отрицательных чисел Х= - (+1).

Пример. Найти десятичный эквивалент числа Х, представленного в DK в формате байта (а) и слова (б).

 

а) [X]DK=A3h=1.01000112

X= - 010111012= - 5Dh= - 93

 

б) [X]DK=FFA3h=1.1111111 101000112 =

= - 0000 0000 010111012=-005Dh= - 93

 

 

1.4.4. Хранение численных данных

 

Числа в компьютере хранятся либо в регистрах процессора (CPU), например в регистрах общего назначения AX,BX,CX,DX, имеющих длину 16 бит в МП К1810 (рис 1.2), либо в ОП. Регистр является устройством временного  хранения данных и используется при выполнении арифметических (сложение,




вычитание), логических (дизъюнкция, конъюнкция и др.) операций  и операций пересылки (AX[M], AX(BX) и др.).

Длина регистра n является конструктивной единицей и определяется типом компьютера и его процессора. В общем случае РОНы могут использоваться для вычисления и модификации адресов и др. В n-разрядном регистре (рис. 1.5) биты нумеруются с 0 по n-1. Бит 0 является самым младшим значащим битом. В РОНах, используемых для хранения данных, старший (n-1) бит отводится под знак числа. Разрядность регистра (n) определяет длину разрядной сетки машины и соответственно длину ее машинного (двоичного) слова – упорядоченную последовательность бит, которыми ЭВМ оперирует одновременно.

 

 

Для длительного хранения больших объемов данных используют «память» ЭВМ, которую разделяют на основную (ОП), внешнюю (ВП) и др. На программном уровне ОП представляют как линейную последовательность байтов (рис. 1.4). Адрес указывает конкретное место байта в среде хранения. В МП 80286, например, пространство линейных адресов простирается от 0 до 1МБ (220байт). Из рис. 1.6 видно, что для записи «слова» необходимо занять две последовательно расположенные ячейки памяти, т.е. два байта. Адресом слова в этом случае является адрес младшего байта. Принцип «младшее по младшему адресу» сохраняется и для представления других единиц данных: двойных слов, многобайтных команд и т.д

 

 

 

 

 

Примечание. Поскольку для обращения к конкретному байту в адресном пространстве (рис.1.6) требуется 5-разрядный адрес (представляется в 16-ричной СС), а разрядность ЦП (n=16 бит) ограничивает его лишь четырьмя, максимальный адрес, формируемый ЦП, равен 216=FFFFh, что составляет 64КБ = =65535бит).

Адресное пространство сегментируется, т.е. разделяется на сегменты по 64КБ, и ЦП вместо 5-разрядного физического адреса формирует логический, который хранится в двух регистрах (рис. 1.7). Один из них, например DS, содержит адрес сегмента  (“базу”), а второй – смещение внутри сегмента показывает, насколько ячеек адресуемый байт смещен относительно базы.

 

 

 

2. Работа на компьютере

(практическая часть)

Используя отладчик TD, выполнить упражнения и задания, описанные в разделах 2.1, 2.4, 2.5.

2.1. Регистрация:

– выбрать в главном меню пункт «Информатика»;

– войти в каталог GR[];

– в командной строке D:\INFORM\GR[]> набрать lab9_10 <Enter>, чтобы

загрузить рабочую среду. На экране монитора появится окно процессора

CPU (рис. 1.8).

 

 

Рис.1.8. Состояние экрана после загрузки рабочей среды

2.2. Задания

Задание 1

По заданному адресу (табл. 1.2) считать из памяти (в режиме отображения byte) числа, представленные в форматах байта, слова и двойного слова, интерпретируя их как:

а)  число знаковое;

б) число беззнаковое.

Результаты перехода от представления числа в памяти к его десятичному значению свести в таблицу 1.3 (заполняется в лаборатории) и показать преподавателю.

Задание 2

1. Заданное в соответствии с № варианта число Х (табл. 1.5) представить в форматах байта, слова и двойного слова и разместить в памяти, начиная с адреса ds:0030.

Результаты преобразований и перехода от значения числа к представлению его в памяти, т.е.  в режиме отображения byte свести в таблицу 4 (по образцу табл. 1). Привести фрагменты адресного пространства (см. рис. 1.15).

2. Результаты преобразований над числами и их представлений перенести из табл. 1.4 в память ПК.

 

Переход Х(Х:)

 

Таблица 1.1

Число

Количество байтов

16-ричное

представление

Адрес

Отображение в памяти

+51

1

33

ds:0030h

33

-51

1

CD

ds:0038h

CD

-51

2

FFCD

ds:003ah

CDFF

2.3. Работа в TurboDebugger

 

После загрузки рабочей среды начинает свою работу отладчик TD–программа, находящаяся на диске ПК и позволяющая отображать и изменять

содержимое памяти, регистров МП, отлаживать исполняемый модуль исходной программы в машинных кодах и др. Нажатием снимается окно с сообщением «Program has no symbol table» и на экране появляется окно отладчика, CPU, состоящее из 5 подокон (рис.1.9). Новое состояние экрана свидетельствует о том, что окно CPU является активным, на что указывает находящийся в нем курсор [n].

 

 

Рис.1.9. Схема расположения подокон окна CPU

 

1. Подокно, отображающее сегмент памяти, хранящий программу:

 

 

а) полный адрес;

б) база сегмента (cs указывает на то, что значение базы берётся из регистра cs);

в) смещение в сегменте;

г) код команды;

д) мнемоника команды на языке ассемблера.

 

2. Подокно, отображающее список регистров и их содержимое:

 

 

 

3. Подокно, отображающее флаги состояния процессора (не приводится).

4. Подокно, отображающее стэк (не приводится).

5. Подокно, отображающее фрагмент памяти (дамп), хранящий данные:

 

 

 

а) полный адрес;

б) база сегмента (ds указывает на то, что значение базы берётся из регистра ds);

в) смещение в сегменте;

г) содержимое памяти (каждая строка отображает содержимое восьми последовательных ячеек памяти. Адрес указан только для первой из них. Для вычисления адресов последующих ячеек памяти к смещению необходимо прибавить соответственно 1,2,3 и т.д.)

Переход из одного подокна  CPU в другое производится нажатием клавиши Tab или Shift - Tab. При этом активность подокна отмечается ярким прямоугольником. Клавишей F5 можно увеличить/уменьшить окно CPU.

 

2.4. Основные команды отладчика для работы с регистрами и памятью

с помощью окна CPU