В. Г. Баула Введение в архитектуру ЭВМ и системы программирования





НазваниеВ. Г. Баула Введение в архитектуру ЭВМ и системы программирования
страница14/46
Дата публикации04.09.2013
Размер3.44 Mb.
ТипИзложение
100-bal.ru > Информатика > Изложение
1   ...   10   11   12   13   14   15   16   17   ...   46

6.4. Целые числа


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

Беззнаковые (неотрицательные) числа представляются в уже известной Вам двоичной системе счисления, такое представление называется прямым кодом неотрицательного числа. Например, десятичное число 13, хранимое в одном байте, будет записано как прямой код 00001101.

Если инвертировать прямой код (т.е. заменить все "1" на "0", а все "0" на "1"), то получим так называемый обратный код числа. Например, обратный код числа 13 равен 11110010.

Для представления отрицательных знаковых чисел используется так называемый дополнительный код, который можно получить из дополнительного кода прибавлением единицы. Например, получим дополнительный код числа –13:

Прямой код = 00001101

Обратный код = 11110010

+ 1

Дополнительный код = 11110011

Существует и другой алгоритм преобразования отрицательного числа X в дополнительный код. Для этого необходимо записать в прямом коде значение 2N -|X|, где значение N равно максимальному числу бит в представлении числа (в нашем примере N=8).

Итак, в знаковой системе счисления отрицательные числа представляются в дополнительном коде, а неотрицательные – в прямом коде. Заметим, что при знаковой трактовке целых чисел крайний правый бит определяет знак числа ("1" для отрицательных чисел). Этот бит называется знаковым битом целого числа. Для знаковых чисел числовая ось несимметрична: количество отрицательных чисел на единицу больше, чем количество положительных чисел (докажите это !).

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

Очень важно понять, что все арифметические операции над знаковыми и беззнаковыми целыми числами производятся абсолютно по одинаковым алгоритмам, что естественно, потому что центральный процессор "не знает", какие это числа "на самом деле". В то же время, с точки зрения программиста, результаты таких операций могут быть разными для знаковых и беззнаковых чисел. Рассмотрим примеры сложения двух чисел длиной в байт. В первом столбике записано внутреннее двоичное представление чисел, а во втором и третьем – беззнаковое и знаковое десятичное представления этих же чисел.

  • Пример 1.




Б/з.

Знак.

11111100

252

–4

00000101

5

5

100000001

1

1

Из этого примера видно, что для знаковой трактовки чисел операция сложения выполнена правильно, а при рассмотрении чисел как беззнаковые результат будет неправильным, так как мы получим девятизначное двоичное число, не "умещающееся" в один байт. Так как центральный процессор "не знает", как программист будет трактовать складываемые числа, то он "на всякий случай" сигнализирует о том, что при сложении беззнаковых чисел произошла ошибка.

Для обозначения таких (и некоторых других) ситуаций в архитектуре компьютера введено понятие флагов. Каждый флаг занимает один бит в специальном регистре флагов (FLAGS). В данном случае флаг CF (carry flag) примет значение, равное единице (иногда говорят – флаг поднят). Рассматривая результат в знаковых числах, мы получили правильный ответ, поэтому соответствующий флаг OF (overflow flag) будет положен равным нулю (опущен).

  • Пример 2.




Б/з.

Знак.

01111001

121

121

00001011

11

11

10000100

132

-124

В данном примере ошибка будет, наоборот, в случае со знаковой трактовкой складываемых чисел, поэтому флаги CF и OF принимают соответственно значения 0 и 1.

  • Пример 3.




Б/з.

Знак.

11110110

246

–10

10001001

137

–119

101111111

383

+127

В данном случае результат будет ошибочен как при беззнаковой, так и при знаковой трактовке складываемых чисел. Содержимое флагов: CF = OF = 1. Легко придумать пример, когда результат сложения правильный как для знаковых, так и для беззнаковых чисел (сделайте это самостоятельно!).

Кроме формирования флагов CF и OF команда сложения целых чисел меняет и значения неко­торых других флагов в регистре флагов FLAGS. Для нас будет важен флаг SF, в который заносится знаковый (крайний правый) бит результата, и флаг ZF, который устанавливается в 1, если результат равен нулю, в противном случае этот флаг устанавливается в 0.

Представление отрицательных чисел в дополнительном коде не очень удобно для програм­мистов, однако, позволяет существенно упростить арифметико-логическое устройство. Заметим, например, что вычитание можно выполнять как сложение с дополнительным кодом числа.

Основная причина использования двух систем счисления для представления целых чисел заключается в том, что при использовании обеих систем счисления диапазон представимых целых чисел увеличивается в полтора раза. Это было весьма существенно для первых ЭВМ с их небольшим объёмом памяти.
1   ...   10   11   12   13   14   15   16   17   ...   46

Похожие:

В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconПлан введение основные блоки ibm pc дополнительные устройства логическое...
Эвм и мини ЭВМ. Это стало предметом серьезного беспокойства фирмы ibm (International Bussines Machines Corporation) ведущей компании...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconКонспект лекций по курсу "Микропроцессоры и микро-эвм в Персональной...
Целью настоящего курса является дать понятие о микропроцессорах и однокристальных микро-эвм, области их применения, дать основы функционирования...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconРабочая программа учебной дисциплины «программные средства пэвм»
Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconРабочая программа учебной дисциплины «программные средства пэвм»
Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconРабочая программа учебной дисциплины «средства создания и исполнения программ на пк»
Эвм и информационных систем, состава и структуры программного обеспечения, а также получение практических навыков работы в среде...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconПрограмма по формированию навыков безопасного поведения на дорогах...
Методические указания предназначены для студентов специальностей ”эвм и системы“, “Автоматизированные системы обработки информации...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconПонятие программы для ЭВМ
Эвм, и порождаемые ею аудиовизуальные отображения. Программ для ЭВМ (в том числе на операционные системы и программные комплексы),...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconУчебно-тематический план по программе «Основы программирования» (2...
Введение. Алгоритм. Программа. Язык программирования Паскаль. Техника безопасности
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования icon«архитектура ЭВМ и систем» Новосибирск сгга содержание
Эвм различных классов; параллельные системы понятие о многомашинных и многопроцессорных вычислительных системах; матричные и ассоциативные...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconПояснительная записка: Цели и задачи дисциплины. Дисциплина «Языки программирования»
Ступников А. А. Языки программирования. Учебно-методический комплекс. Рабочая программа для студентов очной формы обучения, направления...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования icon«Архитектура эвм»
Цель дисциплины: формирование систематизированных знаний в области архитектуры компьютера, организации компьютерных систем, программирования...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconКурсовой проект по дисциплине «Системы программирования и операционные системы»
Резидентный обработчик прерываний от клавиатуры с подключением до системного обработчика
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconТехническое обеспечение кит реферат
Сша и предназначалась для баллистических расчётов при стрельбе. Первая отечественная цифровая ЭВМ «мэсм» создана в 1950 г. Ход развития...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconПрограмма по формированию навыков безопасного поведения на дорогах...
Программы: «Основы алгоритмизации и программирования» и «Арифметические основы эвм»
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconРабочая программа дисциплины «программирование и алгоритмизация»
Автоматизация технологических процессов и производств”, с основами алгоритмизации, основными понятиями программирования, несколькими...
В. Г. Баула Введение в архитектуру ЭВМ и системы программирования iconПлан введение сущность объектно-ориентированного подхода к программированию...
Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Авторы этого языка...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск