Главная » Просмотр файлов » Учебное пособие для иностранных студентов

Учебное пособие для иностранных студентов (1110580), страница 3

Файл №1110580 Учебное пособие для иностранных студентов (Учебное пособие для иностранных студентов) 3 страницаУчебное пособие для иностранных студентов (1110580) страница 32019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Ответ: число без знака 185;

число со знаком -71.

П.4. Арифметические операции (сложение и вычитание).

В этом пункте мы рассмотрим, как выполняются сложение и вычитание для чисел без знака и для чисел со знаком.

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

Пример 1. 120 + 43

120 = 011110002, 43 = 001010112

....

01111000 (120)

+00101011 (43)

10100011 (163)

Пример 2. 120 - 43

....

01111000 (120)

-00101011 (43)

10100011 (77).

Однако, надо иметь в виду следующее: из-за того, что мы работаем только с восемью разрядами, при выполнении операции может получиться неверный результат. Следующие примеры показывают, как это может произойти.

Пример 3. 200 + 60

.....

11001000 (200)

+00111100 (60)

100000100 (4).

не уместилась в байте.

При сложении чисел 200 и 60 произошел выход за разрядную сетку. Поскольку мы располагаем только восемью разрядами, в ответе имеем число 4; коэффициент при 28 = 256, получившийся в результате переноса, потерялся. Вспомним, что в виде чисел без знака представимы числа из диапазона [0, 255]. Число 260 = 200 + 60 не принадлежит допустимому диапазону, что и привело к неверному результату сложения.

Пример 4. 10 - 20

.... .

00001010 (10)

-00010100 (20)

11110110 (246).

При выполнении вычитания приходится делать заём из несуществующего разряда. В итоге получается неправильный ответ. Правильный результат -10 = 10 - 20 не принадлежит представимому диапазону, следовательно, вычитание не может выполниться корректно.

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

Обозначим P(a) - представление числа a (a[-128,127]). Пусть x и y - числа из интервала [-128, 127]. Пусть надо вычислить x + y (или x - y ), то есть получить представление P(x + y) ( или P(x - y) ) для числа x + y (x - y соответственно).

Напомним, что

P(a) = a mod 256.

Воспользуемся известным соотношением

( a b ) mod c = ( a mod c b mod c ) mod c.

Если число x + y (число x - y) представимо в виде числа со знаком (принадлежит отрезку [-128, 127]), его представление можно получить, выполнив соответствующую арифметическую операцию над представлениями чисел x и y :

P(xy) = (xy) mod 256 = (x mod 256 y mod 256 ) = ( P(x) P(y) ) mod 256.

Взятие результата по модулю 28 обозначает тот факт, что вычисления производятся с использованием восьми разрядов, лишние возникающие цифры (или заём из несуществу­ющего разряда) не учитываются.

Примеры.

Пример 1. Вычислить 110 + (-3)

......

01101110 (110)

+11111101 (-3)

101101011 (107).

Пример 2. Вычислить 20 - (-103)

..... ..

00010100 (20)

-10011001 (-103)

01111011 (123).

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

Следующий пример показывает, как вычисление может дать неверный результат.

Пример 3. Вычислить 110+110

.. ...

01101110 (110)

+01101110 (110)

11011100 (-36).

Поскольку результат сложения 220 нельзя представить как число со знаком, в результате сложения получился неверный ответ. (Если считать, что мы работаем с числами без знака, ошибки не происходит. Рассматривая байт 11011100 как число без знака, имеем 110111002 = 220)

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

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

П.5 Арифметические флаги.

В §2 при обсуждении устройства процессора мы говорили, что ЦП содержит регистр СС – слово-состояние процессора. Регистр СС включает в себя биты, которые называются флагами. Есть четыре флага, отвечающих за арифметические операции (арифметические флаги). Некоторые флаги сигнализируют об ошибке при выполнении арифметической операции. Если ошибки нет, они устанавливаются в 0, если ошибка есть – в 1. Флаги имеют названия:

CF – carry flag (флаг переноса)

OF – overflow flag (флаг переполнения)

SF – sign flag (флаг знака)

ZF – zero flag (флаг нуля).

Флаги имеют следующий смысл.

CF: Отвечает за работу с числами без знака. Он устанавливается в 1, если в результате выполнения операции с числами без знака получился результат, не представимый как число без знака (то есть не принадлежащий интервалу [0, 255]).

OF: Отвечает за работу с числами со знаком. Он устанавливается в 1, если в результате выполнения операции с числами со знаком получился результат, не представимый как число со знаком (то есть не принадлежащий интервалу [-128, 127]).

SF: Отвечает за работу с числами со знаком. Устанавливается в 1, если в результате выполнения арифметической операции со знаковыми числами получилось отрицательное число, и в 0 – в противном случае. Если результат был вычислен неверно (OF = 1), SF неверно указывает его знак (противоречит знаку результата); если правильный результат положительный, то SF равен 1, если правильный результат отрицательный, то SF равен 0.

ZF: Устанавливается в 1, если результат по модулю 256 равен 0, и ZF=0 в противном случае. Этот флаг используется при работе с числами без знака и при работе с числами со знаком.

Процессор использует следующие правила при установлении значений флагов.

Флаг CF

CF=1,

при выполнении сложения произошёл перенос за разрядную сетку;

CF=0,

в противном случае

CF=1,

при выполнении вычитания был сделан заём из-за разрядной сетки;

CF=0,

в противном случае

Флаг OF

OF=1,

при выполнении сложения перенос в знаковый разряд не совпадает с переносом из знакового разряда (за разрядную сетку);

OF=0,

переносы совпадают

OF=1

при выполнении вычитания заём из знакового разряда не совпадает с заёмом в знаковый разряд (из-за разрядной сетки);

OF=0

заёмы совпадают

Флаг SF

совпадает со знаковым разрядом результата

Флаг ZF

ZF=1,

все разряды результата равны 0;

ZF=0,

в противном случае

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

Пример 1. 200 + (-20).

CF: CF отвечает за работу с беззнаковыми числами. Следовательно, надо записать этот пример так, чтобы оба операнда были числами без знака. Числу -20 соответствует код 256-20 = 236. Пример будет выглядеть так: 200+236 = 436. 436[0,255], следовательно, CF=1.

OF: OF отвечает за работу со знаковыми числами. Нам надо записать пример так, чтобы оба операнда были числами со знаком. Числу 200 соответствует число
-(256-200)= -56. (200 является дополнительным кодом для числа -56). Итак, пример запишется так: -56+(-20) = -76. Число -76 принадлежит интервалу
[-128,127], следовательно, OF=0.

SF: OF=0 и результат -76 – отрицательный, значит, SF=1.

ZF: -760, следовательно, ZF=0.

Пример 2. (-100) + 150.

CF: Перепишем пример так, чтобы операнды были числами без знака:
156+150 = 306 > 255 , следовательно, CF=1.

OF: Перепишем пример так, чтобы операнды были числами со знаком:
(-100) + (-106) = -206 < -128, следовательно, OF=1.

SF: OF=1, -206<0, следовательно, SF=0 (противоречит знаку правильного результата).

ZF: ZF=0.

Пример 3. 128 + 128.

CF: 128 + 128 = 256 > 255 , значит, CF=1.

OF: (-128) + (-128) = -256 < -128, значит, OF=1.

SF: OF=1, -256<0, следовательно, SF=0.

ZF: 256 mod 256 = 0, значит, ZF=1.

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

016 – 00002

416 – 01002

816 – 10002

C16 – 1210 – 11002

116 – 00012

516 – 01012

916 – 10012

D16 – 1310 – 11012

216 – 00102

616 – 01102

A16 – 1010 – 10102

E16 – 1410 – 11102

316 – 00112

716 – 01112

B16 – 1110 – 10112

F16 – 1510 – 11112

Пример 4. 6A16 - D616

CF:

. . .

01101010

-11010110

10010100

Поскольку был произведен заем из-за разрядной сетки в старший разряд, CF=1

OF:

. . .

01101010

-11010110

10010100

Заём в старший разряд есть, а заёма из старшего разряда нет, следовательно, OF=1

SF:

SF=1, совпадает со старшим разрядом результата

ZF:

ZF=0, в результирующем байте есть биты, равные 1

Пример 5. 7516 + 5C16

CF:

. ....

0 1110101

+0 1011100

1 1010001

Нет переноса за разрядную сетку, CF=10

OF:

.....

0 1110101

+0 1011100

1 1010001

Перенос в старший разряд есть, переноса из старшего разряда нет, значит, OF=1

SF:

SF=1

ZF:

ZF=0

Пример 6. B716 - CC16

CF=1

.. .

10110111

-11001100

11101011

OF=0

.. .

10110111

-11001100

11101011

Были сделаны заём из старшего разряда и заём в старший разряд из-за разрядной сетки

SF=1

ZF=0

Пример 8. 8016 + 8016

CF=1

.

10000000

+10000000

100000000

OF=1

.

10000000

+10000000

100000000

SF=0,

совпадает со старшим разрядом результата. Единица вышла за разрядную сетку, не попала в результат.

ZF=1,

все биты результата равны 0

§4. Учебные машины.

Ранее мы рассмотрели общие принципы построения ЭВМ. В данном параграфе мы разберем 4 учебные вычислительные машины. Эти машины называются учебными, потому что они не существуют на самом деле. Однако они помогут нам представить работу реальных ЭВМ, разобрать некоторые проблемы, возникающие при построении ЭВМ, и способы решения этих проблем.

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

П.1. Учебная трехадресная машина УМ-3.

1. Структура процессора.

Характеристики

Тип файла
Документ
Размер
576 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее