Міністерство освіти і науки УкраїниНаціональний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота №1
з дисципліни «Операційні системи»
«Внутрішнє представлення цілочисельних даних в IBM PC»
Варіант 20
Мета роботи. Виконати переведення чисел, наданих викладачем, з десяткової у двійкову систему числення. Надати їх внутрішньомашинне представлення відповідно до діапазону знакових та беззнакових форматів типів чисел. Машинне представлення даних необхідно надати у двійковій та шістнадцятирічній системі числення.
Коротка теоретична частина
Загальноприйнята форма запису числа являє собою скорочену форму запису розкладання по ступенях основи системи числення, наприклад:
13067810=1*105+3*104+0*103+6*102+7*101+8*100
Загальна формула надання чисел у позиційної системі числення :
D = n0*m0+ n1*m1+ n2*m2+. . . + nk*mk ( 1)
D – числове дане
n - цифра на позиції і у числі
m - основа системи числення (2, 8, 10, 16)
Десяткове представлення позначається d – Decimal, двійкове – b (Binary), шістнадцятирічне – h (Hexadecimal).
Програми і дані в комп'ютері зберігаються у двійкової системі числення. Для позначення адрес розміщення даних у оперативній пам'яті використовується шістнадцятирічне представлення чисел.
При переведенні у десяткову систему числення потрібно число розкласти по ступенях основи системи числення.
Із шістнадцятирічної у десяткову:
(ак ак-1 а1 а0)16 = ак *16 к + ак-1 * 16 к-1 + ...+а1 *16 +а0
92C816=9*16103+2*16102+12*16101+8*16100=9*4096+2*256+12*16 +8=36864 +512+192 +8=3757610
Із восьмирічної в десяткову:
(ак ак-1 а1 а0)8 = ак *8 к + ак-1 * 8 к-1 + ...+а1 *8 +а0
7358=7*8102+3*8101+5*8100=7*64+3*8+5*1=448+24+5=47710
Із двійкової у десяткову:
1101001012=1*2108+1*2107+0*2106+1*2105+ 0*2104+0*2103+1*2102+0*2101+ 1*2100= 256+128+0+32+0+0+4+0+1=42110
Для переведення чисел з системи числення з основою p у систему числення з основою q з використанням арифметики старої системи числення з основою p потрібно:
Для переведення цілої частини:
Послідовно число, записане в системі з основою p, слід ділити на основу нової системи числення, виділяючи залишок. Останні (числа залишку), записані в зворотному порядку, будуть утворювати число в новій системі числення;
Для переведення дробової частини:
Послідовно дробову частину слід множити на основу нової системи числення, виділяючи цілі частини, які і будуть утворювати запис дробової частини числа в новій системі числення.
Представлення чисел у десятковій, двійковій, шістнадцятирічній системі
Decimal, d
Binary, b
Hexadecimal, h
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Зв’язок між двійковою і шістнадцятирічною системою – 24 , тобто 16-річне число можна представити чотирма двійковими розрядами.
Від’ємні числа зберігаються у зворотному додатковому коді
Додатковий код – це таке число, яке треба додати до даного числа для одержання 0 у всіх його розрядах й 1 у розряді ліворуч від самого старшого
Переведення у двійкову систему числення
Цілочисельні типи даних, їх діапазони значень та кількість пам’яті, яку вони потребують:
Тип
Діапазони значень
Необхідна пам’ять
Byte
0 - 255 28 - беззнакові
1 byte
Shortint
-128 - 127 (28 / 2) знакові
1 byte
Word
0 - 65535 216 беззнакові
2 bytes
Integer
-32768 – 32767 (216 / 2) знакові
2 bytes
Longint
-2 147 483 748 - 2 147 483 747 (232 / 2) знакові
4 bytes
Директиви асемблера для задання простих типів даних
Довжина (біт)
Ініціалізація
Опис
8
DB(Define Byte) – визначити байт
BYTE
16
DW(Define Word) – визначити слово (2 байти)
WORD
32
DD(Define Double Word) – визначити подвійне слово (4 байти)
DWORD
64
DQ(Define Quarter Word) – визначити зчетверене слово (8 байт)
QWORD
80
DT(Define Ten Bytes) – визначити 10 байтів (80-бітні типи даних, що використовуються FPU).
TBYTE
За 20 варіантом було отримано такі дані:
2025 + 20 = 2045
2025 – 20 = 2005
-2025 + 20 = -2005
-2025 – 20 = -2045
217 + 20 = 237
217 – 20 = 197
-217 + 20 = -197
-217 – 20 = -237
Переведення у двійкову систему
/
/
2045 = 0000.0111.1111.1101
2005 = 0000.0111.1101.0101
-2005 = 1111.1000.0010.1011
-2045 = 1111.1000.0000.0011
237 = 1110.1101
197 = 1100.0101
-197 = 1111.1111.0011.1011
-237 = 1111.1111.0001.0011
Переведення у шістнадцяткову систему
2045 = 07FD
2005 = 07D5
-2005 = F82B
-2045 = F803
237 = ED
197 = C5
-197 = FF3B
-237 = FF13
Машинне представлення заданих чисел
Dec
Byte
Word
Bin
Hex
Bin
Hex
237
1110.1101
ED
0000.0000.1110.1101
00ED
197
1100.0101
C5
0000.0000.1100.0101
00C5
-197
1111.1111.0011.1011
FF3B
-237
1111.1111.0001.0011
FF13
2045
0000.0111.1111.1101
07FD
2005
0000.0111.1101.0101
07D5
-2005
1111.1000.0010.1011
F82B
-2045
1111.1000.0000.0011
F803
Завдання 1
Створити у блокноті файл з назвою прізвища з розширенням asm. У цей файл додати дані розміром байт та слово. Створити лістинг програми. Переглянути та проаналізувати програму *.lst на предмет відповідності опису типу даних, роздрукувати і додати до звіту. Якщо є помилки у типі даних, виділити їх напівжирним накресленням.
/
Лістинг
/
/
/
Висновок
У процесі виконання лабораторної роботи було переведено числа з десяткової системи у двійкову і шістнадцяткову, а також отримано їх внутрішньомашинне представлення. Правильність обчислень було перевірено за допомогою лістингу.