Міністерство освіти і науки УкраїниНаціональний технічний університет України
«Київський політехнічний інститут ім. І. Сікорського»
Кафедра автоматизації проектування енергетичних процесів і систем
Лабораторна робота №1
з дисципліни «Операційні системи»
«Внутрішнє представлення цілочисельних даних в IBM PC»
КИЇВ-2022
Мета роботи. Виконати переведення чисел, наданих викладачем, з десяткової у двійкову систему числення. Надати їх внутрішньомашинне представлення відповідно до діапазону знакових та беззнакових форматів типів чисел. Машинне представлення даних необхідно надати у двійковій та шістнадцятирічній системі числення.
Теоретична частина.
Загальноприйнята форма запису числа являє собою скорочену форму запису розкладання по ступенях основи системи счислення, наприклад:
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).
Представлення чисел у десятковій, двійковій, шістнадцятирічній системі
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-річне число можна представити чотирма двійковими розрядами. Наприклад, 72A16 = 0111 0010 10102
Від’ємні числа зберігаються у зворотному додатковому коді
Для переведення цілого десяткового від’ємного числа спочатку слід його розглядати як позитивне, шляхом ділення на основу нової системи счислення отримати остачі і у зворотному порядку ці остачі і будуть числом у новій системі.
Наприклад, 1010 01011
1 0110
-999 999=11 1110 01112
0000 0011 1110 01112 інвертуємо
1111 1100 0001 1000 до молодшого розряду додаємо 1
1
1111 1100 0001 10012 = FC19 h
Тип
Діапазони значень
Необхідна пам’ять
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
Завдання1. Перевести задані числа викладачем відповідно свого варіанту у двійкову систему, показавши детально покрокову схему переведення.
Надати внутрішнє представлення заданих чисел у вигляді таблиць. Виконати перевірку, підготувавши програму з використанням компілятора з мови Асемблер TASM та отримання файлу лістингу.
2025 + 7(порядковий номер) = 2032
-2025 - 7(порядковий номер) = -2032
2025 - 7(порядковий номер) = 2018
-2025 + 7(порядковий номер) = -2018
217 + 7(порядковий номер) = 224
-217 - 7(порядковий номер) = -224
217 - 7(порядковий номер) = 210
-217 + 7(порядковий номер) = -210
Таблиця заданих чисел:
Dec
Byte
Word
Bin
Hex
Bin
Hex
2032
0000.0111.1111.0000
07F0
-2032
1111.1000.0001.0000
F810
2018
0000.0111.1110.0010
07E2
-2018
1111.1000.0001.1110
F81E
224
1110.0000
E0
0000.0000.1110.0000
00E0
-224
1111.1111.0010.0000
FF20
210
1101.0010
D2
0000.0000.1101.0010
00D2
-210
1111.1111.0010.1110
FF2E
/
/
Завдання 2: Створити у Блокноті файл з назвою вашого прізвища з розширенням asm на прикладі файлу dani.asm. У цей файл додати ваші дані розміром байт та слово. Створити лістинг програми. Переглянути та проаналізувати програму *.lst на предмет відповідності опису типу даних, роздрукувати і додати до звіту. Якщо є помилки у типі даних, виділити їх напівжирним накресленням.
Sosiedskyi.asm
/
/
Лістинг:
/
Завдання 3: Створити у Блокноті файл «Повні дані Прізвище» (файл dani.asm). У файлі dani.asm видалити символ коментаря « ; », запустити на трансляцію та уважно проаналізувати внутрішньомашинне представлення різних значень даних та їх типів, віднайти дані з невірним типом даних та виділити їх напівжирним накресленням.
/
dani.asm
/
/
Лістинг:
/
/
Виділенні помилки(напівжирним курсивом):
MODEL tiny
.data
k db -8
db -10
dw -10
db 15
db -15
db 0feh
db 0b12h
db 01100110b
dw 10001011b
dw 13
dw '0f'
dw 0245h
dw 0101b
dw 0a32h
dw 0f45h
dw 55
dw 0c47h
dw 0afh
dd 4, 8, 0Ah, 0ffh
dw -15
db -16
dw -16
r db 127
q db -127
t1 dw -127
db 128
i db -128
i1 dw -128
w db -129
p dw -129
db 255
db -255
db 256
dw 256
q dw -32768
rr1 df -32768
zz1 dd -32768
j dw 32767
a dw 65535
dw -65535
dd -65535
dd -2147583648
dd 2147583647
dq -2147583648
dq 2147583647
ll dw 10101000b
ff db 12, "№", 0b12h
f1 dw 12, "№", 0b12h
g5 db 0101b
ss dw 00000101b
xx dq 26
c1 dw 0f45h, 55, 66
a1 db -113
a2 dw -113
ii db -159
i11 dw -159
s1 db -89
ss5 dw -89
s2 db -92
ff2 dw -92
s3 dw -231
a11 db "sigma"
a22 dw e301h
a33 db 12
a55 dw offset a11
a66 dw 13
gg dw -123
hh dw -9
end
Висновок: У процесі виконання лабораторної роботи було застосовано вміння переводити числа с десяткової системи до двійкової та шістнадцяткової систем числення. Було надано внутрішньомашинне представлення цих чисел з урахуванням діапазону знакових та беззнакових форматів типів чисел. Перевірено файл dani.asm, у якому було знайдено 5 помилок.