Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗМІСТ+курс.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
371 Кб
Скачать
☆

5 Завдання на курсову роботу

1 Записати без пропусків свої прізвище, ім’я, по-батькові.

2 Взяти будь-які 16 символів із цієї послідовності. Замість кожного символу записати його молодшу цифру ASCII-коду. Отриману послідовність розбити на дві частини по 8 цифр у кожній. Отримані H-коди розглядати як два четирьохбайтних числа в шістнадцятковій системі числення.

3 Показати розміщення цих чисел у пам'яті комп'ютера.

4 Адреса першого числа записати як <seg>:<offset> у вигляді другого числа.

5 Адресу другого числа отримати збільшенням адреси першого на чотири.

6 Обчислити фізичну адресу пам'яті розміщення першого й другого чисел.

7 Визначити числові значення вихідних шістнадцяткових чисел (перевести вихідні числа в десяткову систему числення). Пояснити процедуру перекладу.

8 Записати двійкове подання вихідних (шістнадцяткових) чисел (перевести їх у двійкову систему числення). Пояснити процедуру переходу.

9 Для наступних арифметичних операцій утворити з вихідних чисел двійкові числа з нульовим старшим битому (якщо старший біт у вихідному числі дорівнює одиниці, то його замінити на нуль).

10 Виконати дії додавання (віднімання) двійкових (шістнадцяткових) чисел у додатковому коді при всіх можливих сполученнях знаків доданків. Перевірити правильність результатів. Пояснити невідповідності, якщо є.

11 Записати значення додатніх і від’ємних десяткових чисел (п. 4) в упакованому й неупакованому форматах. Показати розміщення в пам'яті комп'ютера першого даного з фізичної адреси з п.3.

12 Вихідні двійкові числа (п.2) розглянути як числа із плаваючою комою, записані в базовому форматі одиночної довжини.

13 Обчислити суму, різницю й добуток цих чисел із плаваючою комою. Дати необхідні пояснення за правилами й послідовністю обчислень.

6 Приклад розв’язку курсової роботи

Запишемо прізвище, ім’я, по-батькові без пробілів.

DanyshukVolodymyrPetrovych

Візьмемо перші 16 символів із цієї послідовності і отримаємо послідовність символів OliynechenkoYuriyIgorovych. Вибираємо 16 символів

Oliynekyuriyigor.

Замість кожного символу запишемо його молодшу цифру ASCII-коду F C 9 9 E 5 B 9 5 2 9 9 9 7 F 2

Розіб’ємо отриману послідовність на дві частини по 8 цифр в кожній:

Перше число – F C 9 9 E 5 B 9

Друге число – 5 2 9 9 9 7 F 2

Покажемо розміщення чисел в пам’яті комп’ютера. Берем по два символи кожного числа.

B9

E5

99

FC

F2

97

99

52

Запишемо адрес першого як <seg>:<offset> у вигляді другого числа.

5 2 9 9 : 9 7 F 2

Адрес другого числа отримаємо шляхом збільшення на 4 адреса першого числа.

5 2 9 9 : 9 7 F 6

Обчислимо фізичний адрес пам’яті розміщення першого і другого чисел за формулою <фіз.адреса>=<seg>*p + <offset> , де р=16.

(5 2 9 9)*1 6 + 9 7 F 2 =7 B 1 1 8

(5 2 9 9)*1 6 + 9 7 F 6 =7 B 1 1 C

Переведемо дані числа в десяткову систему числення за формулою (2.4).

Переведемо перше число:

F C 9 9 E 5 B 9 16= 9*160+B*161+5*162+E*163+9*164+9*165+C*166 + F*167== 9+160+1280+57344+589824+9437184+20132692+4026531840=4056750333

Переведемо друге число:

5 2 9 9 9 7 F 216 = 2*160+F*161+7*162+9*163+9*164+9*165+2*166+5*167=

= 2+240+1792+36864+589824+9437184+33554432+1342177280=1385797618

Переведемо дані шістнадцяткові числа в двійкову систему числення, замінивши кожен символ H-коду на 4 цифри двійкового коду.

Переведемо перше число:

F16 =1111 C16 =1100 916 =1001 916 =1001

E16 =1110 516 =0101 B16 =1011 916 =1001

Отримаємо перше число: F C 9 9 E 5 B 916= 11111100100110011110010110111001

Переведемо друге число:

516 =0101 216 =0010 916 =1001 916 =1001

916 =1001 716 =0111 F16 =1111 216 =0010

Отримаємо друге число: 5 2 9 9 9 7 F 216= 01010010100110011001011111110010

Для наступних операцій утворимо з вихідних чисел двійкові числа з нульовим старшим бітом. У першому числі старший біт дорівнює 0 тому нічого не змінюємо. У другому числі старший біт дорівнює 1 тому замінимо його на 0. Отримаємо:

а1 = 011111001001100111100101101110012

а2 = 010100101001100110010111111100102

Виконаємо додавання (віднімання) двійкових чисел в додатковому коді при всіх можливих сполученнях знаків. Представимо числа в додатковому коді.

Після переведення чисел отримаємо:

+а1= 011111001001100111100101101110012

+а2= 010100101001100110010111111100102

-а1= 100000110110011000011010010001112

-а2= 101011010110011001101000000011102

Виконаємо додавання а1+а2

01111100100110011110010110111001

+

01010010100110011001011111110010

11001111001100110111110110101011

Виконаємо дію а1-а2=а1+(-а2)

01111100100110011110010110111001

+

10101101011001100110100000001110

100101010000000000100110111000111

Виконаємо дію а2-а1=а2+(-а1)

01010010100110011001011111110010

+

10000011011001100001101001000111

11010101111111111011001000111001

Виконаємо дію -а1-а2=-а1+(-а2)

10000011011001100001101001000111

+

10101101011001100110100000001110

100110000110011001000001001010101

Виконаємо перевірку отриманих результатів. Додамо і віднімемо числа а1 і а2 при всіх можливих сполученнях знаків в десятковій системі числення.

а1 = 209046060110

а2 = 138579761810

Виконаємо дію а1+а2 = 2090460601+1385797618=3476258219.

Результат переведемо в двійкову систему числення і запишемо його у

додатковому коді:

347625821910 = 110011110011001101111101101010112

Даний результат суми чисел +а1 і +а2 в додатковому коді співпав з результатом отриманим додаванням цих чисел в десятковій системі числення

Виконаємо дію а1- а2= 2090460601 – 1385797618 = 704662983

Результат переведемо в двійкову систему числення і запишемо його у додатковому коді:

70466298310 = 1010100000000001001101110001112

Виконаємо дію а2 – а1 = 1385797618 – 2090460601 = - 704662983

Результат переведемо в двійкову систему числення і запишемо його в додатковому коді:

- 70466298310 = 110101011111111110110010001110012

Даний результат співпав з додатковим кодом різниці чисел +а1 – а2, отриманий швидше.

Виконаємо дію –а2 – а1 = – 1385797618 – 2090460601 = - 3476258219.

Результат переведемо в двійкову систему числення і запишемо його в додатковому коді :

- 347625821910 = 1001100001100110010000010010101012

Переведемо числа а1 і а2 в десяткову систему числення.

а1 = 209046060110

а2 = 138579761810

Запишемо числа в запакованому форматі.

Число +а1 в запакованому форматі має вигляд:

0 0000

1100

0010

0000

1001

0000

0100

0110

0000

0110

0000

0001

де молодша тетрада 11002 = С16 старшого байта – знак плюс. Тетради решта байтів– цифри числа.

Число +а2 в запакованому форматі має вигляд:

0 0000

1100

0001

0011

1000

0101

0111

1001

0111

0110

0001

1000

де молодша тетрада 11002 = С16 старшого байта – знак плюс. Тетради решта байтів– цифри числа.

Число –а1 в запакованому форматі має вигляд:

0 0000

1101

0010

0000

1001

0000

0100

0110

0000

0110

0000

0001

де молодша тетрада 11012 = D16 старшого байта – знак мінус. Тетради решта байтів– цифри числа.

Число –а2 в запакованому форматі має вигляд:

0 0000

1101

0001

0011

1000

0101

0111

1001

0111

0110

0001

1000

де молодша тетрада 11012 = D16 старшого байта – знак мінус. Тетради решта байтів– цифри числа.

Покажемо розміщення в пам’яті комп’ютера першого даного з фізичної адреси яким є друге число.

0000

0001

0000

0110

0100

0110

1001

0000

0010

0000

0000

1100

Запишемо числа в не упакованому форматі.

Число +а1 в не упакованому форматі має вигляд:

209046060110

2B

32

30

39

30

34

36

30

36

30

31

де байт 2В – знак плюс. Інші байти – цифри.

Число +а2 в не упакованому форматі має вигляд:

138579761810

2В

31

33

38

35

37

39

37

36

31

38

Покажемо розміщення в пам'яті комп’ютера першого даного з фізичної адреси, котрим є друге число.

209046060110

0001

0010

0001

0000

0001

1001

0001

0000

0001

0100

0001

0110

0001

0000

0001

0110

0001

0000

0001

0001

Вихідні двійкові числа а1 і а2 розглянемо як числа із плаваючою комою, що записані в базовому форматі одиничної довжини.

А1 в базовому форматі одиничної довжини буде виглядати:

0 11111001 00110011110010110111001

А2 в базовому форматі одиничної довжини буде виглядати:

0 10100101 00110011001011111110010

Для обчислення суми і різниці цих чисел з плаваючою комою, постараємося вирівняти порядки, так як додавати або віднімати мантиси чисел ми маємо право в тому випадку, коли порядки чисел рівні.

Різниця порядків чисел а1 і а2 рівна:

1010100 = 8410

В даному випадку при вирівнюванню мантиси меншого числа а2 по порядку більшого числа а1, тобто при зміщенню мантиси числа а2 на 84 порядок вправо, мантиса числа а2 перетвориться в нуль, відповідно, результатом суми чисел а1+а2 і різниці чисел а1–а2 буде число а1, тобто а1+а2=а1 і а1-а2=а1, тобто

0 11111001 00110011110010110111001

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

1.00110011110010110111001

*

1.00110011001011111110010

00000000000000000000001001100111100101101110010

00000000000000000001001100111100101101110010000

00000000000000000010011001111001011011100100000

00000000000000000100110011110010110111001000000

00000000000000001001100111100101101110010000000

00000000000000010011001111001011011100100000000

00000000000000100110011110010110111001000000000

00000000000001001100111100101101110010000000000

00000000000100110011110010110111001000000000000

00000000100110011110010110111001000000000000000

00000001001100111100101101110010000000000000000

00001001100111100101101110010000000000000000000

00010011001111001011011100100000000000000000000

10011001111001011011100100000000000000000000000

10111000101010110100011100011000100011111100010

Для визначення місця коми необхідно скласти кількість знаків після коми в вхідних числах і пересунути кому на цю кількість знаків. Кількість знаків після коми в обох числах разом 46. Пересунувши кому на 46 получимо результат множення:

1.0111000101010110100011100011000100011111100010

Для запису його в базовому форматі одиничної довжини необхідно, записати отриманий результат в вигляді нормалізованої мантиси. Для нормалізації необхідно пересунути кому на один знак вліво і до порядку числа добавити одиницю (одиницю добавимо, коли будемо працювати з порядком результату) і відкинути всі знаки після коми окрім перших двадцяти трьох. Тоді мантиса числа із скритим бітом буде виглядати наступним чином.

Для визначення експоненти результату, додамо результати в десятковій системі числення. Для цього переведемо експоненти чисел в десяткову систему числення, а потім перетворимо їх в порядки по правилу П = Е –127, де Е – експонента числа, а П – його порядок.

Експонента першого числа рівна:

Е1 = 111110012 = 249.

Тоді порядок першого числа буде П1 = Е1 – 127 = 122.

Експонента другого числа рівна:

Е2 = 101001012 = 165

Тоді порядок першого числа буде П2 = Е2 – 127 = 38

Порядок результату рівний сумі порядків множених чисел

П = П1 + П2 = 122 +38= 160

Експонента результату рівна П + 127 = 160 + 127 = 287. Добавимо до експоненти одиницю, яка була отримана в результаті нормалізації мантиси.

Тоді Е =287 + 1 = 288.

Переведемо E в двійкову систему числення Е = 28810 = 1001000002.

Знак результату визначається додаванням знакових бітів перемножених по модулю два. Тоді знаковий біт результату буде (0 + 0) mod 2 = 0.

Отже, результат множення в базовому форматі одиничної довжини буде виглядати наступним чином:

0 100100000 01110001010101101000111.

ПЕРЕЛІК РЕКОМЕНДОВАНИХ ДЖЕРЕЛ

1 Таненбаум Є. Архітектура комп’ютера. – СПб.: Питер, 2002. – 704 с.

2 А.Я.Савельев. Арифметические и логические основы цифровых автоматов. М.: Высшая школа. 1980.

3 А.Я.Савельев. Прикладная теория цифровых автоматов. М.:Высшая школа. 1987.

4 Г.Н.Соловьев. Арифметические устройства ЭВМ. М.: Энергия. 1978.

5 Я.Чу. Организация ЭВМ и микропрограммирование. М.: Мир. 1975.

9 А.М.Шауман. Основы машинной арифметики. Л.: Из-во Ленинградского университета. 1979.

10 Б.М.Каган. Электронные вычислительные машины и системы. М.: Энергоатомиздат. 1991.

11 М.А.Карцев. Арифметика цифровых машин. М.: Наука. 1969.

12 Ф.Е.Темников, В.А.Афонин, В.И.Дмитриев. Теоретические основы информационной техники. М.: Энергия. 1971.

13 Микропроцессоры. В 3-х кн. Кн. 1. Архитектура и проектирование микро-ЭВМ. Организация вычислительных процессов: Учеб. для втузов / Под. редакцией Л.Н. Преснухина. М.: Высш. шк., 1986. – 495 с.: ил.

35