- •Курсова робота
- •Пояснювальна записка
- •Содержание:
- •Внутреннее представление целочисленных данных
- •1 ;Prim.Asm
- •2 0000 .Model tiny
- •3 0000 .Data
- •Задание №2: Внутреннее представление вещественных данных
- •22 0050 Bfdd495182a9930c aid dq -0.4570
- •24 0060 Bfdd2bd3c3611340 dq -0.4564
- •Вычисление целочисленных арифметических выражений
- •Організація умовних переходів
1 ;Prim.Asm
2 0000 .Model tiny
3 0000 .Data
4 ;--------------short int---------
5 0000 3F is DB 63
6 0001 C7 DB -57
7 ;---------------byte---------------
8 0002 81 ib DB -63
9 0003 39 DB 57
10 ;--------------integer-------------
11 0004 EE26 ii DW -4570
12 0006 11D4 DW 4564
13 ;--------------Word----------------
14 0008 11DA iw DW 4570
15 000A EE2C DW -4564
16 ;----------------------------------
17 END
Вывод:в ходе выполнения первого задания курсовой работы были переведены целые числа из десятичной в двоичную и шестнадцатиричную систему счисления и представление их внутреннего представления соответственно по диапозону знаковых и беззнаковых формах типов Short Int, Byte, Integer та Word.
Задание №2: Внутреннее представление вещественных данных
Общие сведения.
В ассемблере вещественные числа могут быть 3-х типов:float, double, long double,также эти числа называются числа с плавающей точкой.
Что бы перевести правильную десятичную дробь необходимо данное число последовательно умножать на 2 до тех пор , пока в мантиссе не получится либо 0, либо нужное число разрядов. При умножении полученные целые значения не учитываются, но они образуют результат в виде упорядоченной последовательности целых двоичных чисел.
60+3=69
60-3=51
-60+3=-51
-60-3=-69
4567+3=4570
4567-3=4564
-4567-3=-4570
-4567+3=-4564
Загальні відомості
У асемблері матеріальні числа можуть бути 3-х типів: float, double, long double, також ці числа називаються числа з плаваючою точкою.
Матеріальні числа представляються в двоїчному нормалізованому вигляді. Нормалізувати – представити двоїчне число так, щоб воно починалося з 1. Формула для запису двоїчного числа в нормалізованому вигляді має вигляд:
+ 1.m2*2р.
Щоб перевести правильну десяткову дріб, необхідно дане число послідовно множоти на 2 до тих пір, поки в мантисі не вийде або 0, або потрібне число розрядів. При множенні набуті цілі значення не враховються, але вони утворюють результат у вигляді впорядкованої послідовності цілих двоїчних чисел.
Матеріальні числа типу float зберігаються в елементі пам'яті 4 байти. Формат представлення таких чисел складається із знаку, характеристики і нормалізованої мантиси.
Характеристика числа – це 8 розрядів з 23 по 30. Характеристика обчислюється таким чином: Характеристика = Зсув + Порядок.
Зсув – це число, рівне половині максимально можливого, яке може поміститися в поле характеристика (7F).
При виконанні методів, вказаних вище і в першому завданні курсової роботи, я отримал перевод та внутрішнє уявлення знакових і без знакових цілих чисел і правильних десяткових дробей:
63.0 d 00111111.0 b
63.0 d float 1.11111*25 b
Характеристика = 7F + 5 = 84 h 1000 0100 b
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
||||||
S |
Характеристика |
Нормалізована мантиса |
||||||||||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||||||
Біти |
||||||||||||||||||||||||||||||||||||||
4 |
2 |
7 |
C |
0 |
0 |
0 |
0 |
|||||||||||||||||||||||||||||||
57.0 d 00111001.0 b
57.0 d float 1.11011 * 25 b
Характеристика
= 7F
+ 5 =84 h
1000
0100 b
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|||||||
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|||||||
Біти |
|||||||||||||||||||||||||||||||||||||||
4 |
2 |
6 |
C |
0 |
0 |
0 |
0 |
||||||||||||||||||||||||||||||||
|-63.0 | d 63.0 d 00111111.0 b
|-63.0 | d float -1.11111*25 b
Характеристика = 7F + 5 = 84 h 1000 0100 b
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|||||
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|||||
Біти |
|||||||||||||||||||||||||||||||||||||
C |
4 |
7 |
C |
0 |
0 |
0 |
0 |
||||||||||||||||||||||||||||||
|-51.0 | =51.0 11001101.0 b
|-51.0 | d float 1. 1001101*27 b
Характеристика = 7F + 7 =86 h 1000 0110 b
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
||||||
S |
Характеристика |
Нормалізована мантиса |
||||||||||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||||||
Біти |
||||||||||||||||||||||||||||||||||||||
C |
2 |
5 |
C |
0 |
0 |
0 |
0 |
|||||||||||||||||||||||||||||||
0.4570 d 0.011101001 b
0.4570 d float 1.1101001 d* 2-2 b
Характеристика
= 7F – 2 = 7D
0111 1101 b
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Біти |
|||||||||||||||||||||||||||||||
3 |
E |
E |
9 |
0 |
0 |
0 |
0 |
||||||||||||||||||||||||
0.4564 d 0.0111010 b
0.4564 d float 1.1101*2-2 b
Характеристика = 7F – 2 = 7D 0111 1101 b
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Біти |
|||||||||||||||||||||||||||||||
3 |
D |
E |
A |
0 |
0 |
0 |
0 |
||||||||||||||||||||||||
|-0.4570|=0.4570 d 0.011101001 b
|-0.4570| d float 1.1101001 d* 2-2 b
Характеристика
= 7F – 2 = 7D
0111 1101 b
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Біти |
|||||||||||||||||||||||||||||||
B |
E |
E |
9 |
0 |
0 |
0 |
0 |
||||||||||||||||||||||||
|-0.4564|=0.4564 d 0.0111010 b
|-0.4564| d float 1.1101*2-2 b
Характеристика = 7F – 2 = 7D 0111 1101 b
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Біти |
|||||||||||||||||||||||||||||||
B |
E |
E |
8 |
0 |
0 |
0 |
0 |
||||||||||||||||||||||||
Результат переведення змішаних десяткових чисел в двоїчну систему счислення утворюється шляхом з'єднання (конкатенації) цілої і дробової частини.
При виконанні цього методу отримаємо перевод наступних знакових та беззнакових змішаних десяткових чисел:
63.4570 d 00111111. 011101001
63.4570 d float 1.11111011101001*25
Х
арактеристика
= 7F + 5 = 84 h 1000 0100 b
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Біти |
|||||||||||||||||||||||||||||||
4 |
2 |
7 |
D |
C |
0 |
0 |
0 |
||||||||||||||||||||||||
57.4564 d 00111001. 0111010
57.4564 d float 1.11001011101*25
Х арактеристика = 7F + 5 = 84 h 1000 0100 b
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Біти |
|||||||||||||||||||||||||||||||
4 |
2 |
6 |
5 |
D |
0 |
0 |
0 |
||||||||||||||||||||||||
|-63.4570 | d 63.4570 d 00111111. 011101001b
|-63.4570 | d float 1.11111011101001*25b
Характеристика = 7F + 5 = 84 h 1000 0100 b
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|||||
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|||||
Біти |
|||||||||||||||||||||||||||||||||||||
C |
2 |
7 |
D |
C |
8 |
0 |
60 |
||||||||||||||||||||||||||||||
|-57.4564 | d 51.4558 d 00111001. 0111010 b
|-57.4564 | d float .11001011101*25b
Характеристика = 7F + 5 = 84 h 1000 0100 b
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|||||
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|||||
Біти |
|||||||||||||||||||||||||||||||||||||
C |
2 |
9 |
7 |
4 |
0 |
0 |
0 |
||||||||||||||||||||||||||||||
69.0 d 01000101.0 b
69.0 d float 1.000101*26 b
Характеристика = 7FF + 6 = 805 h 1000 0000 0101 b
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
… |
0 |
0 |
|
||||||
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||||||||
63 |
62 |
61 |
60 |
59 |
58 |
57 |
56 |
55 |
54 |
53 |
52 |
51 |
50 |
49 |
48 |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
39 |
38 |
37 |
36 |
… |
1 |
0 |
|
||||||
Біти |
|||||||||||||||||||||||||||||||||||||
4 |
0 |
5 |
1 |
4 |
0 |
0 |
… |
||||||||||||||||||||||||||||||
63.0 d 01000101.0 b
63.0 d float 1.000101*26 b
Характеристика = 7FFF+ 6 = 8005 h 1000 0000 0000 0101 b
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
… |
0 |
0 |
|
||||||
S |
Характеристика |
Нормалізована мантиса |
|||||||||||||||||||||||||||||||||||
79 |
78 |
77 |
76 |
75 |
74 |
73 |
72 |
71 |
70 |
69 |
68 |
67 |
66 |
65 |
64 |
63 |
62 |
61 |
60 |
59 |
58 |
57 |
56 |
55 |
54 |
53 |
52 |
… |
1 |
0 |
|
||||||
Біти |
|||||||||||||||||||||||||||||||||||||
4 |
0 |
0 |
5 |
8 |
0 |
0 |
… |
||||||||||||||||||||||||||||||
Turbo Assembler Version 4.1 17/04/11 14:11:41 Page 1
prim3.asm
1 ;prim.asm
2 0000 .MODEL tiny
3 0000 .DATA
4 ;------------float----------------
5 0000 428A0000 a DD 63.0
6 0004 424C0000 DD 57.0
7 0008 C28A0000 b DD -63.0
8 000C C24C0000 DD -57.0
9 0010 BEEA4A8C ai DD -0.4570
10 0014 3EE95E9E DD 0.4564
11 0018 BEE95E9E DD -0.4564
12 001C 3EEA4A8C DD 0.4570
13 0020 428AEA4B DD 63.4570
14 0024 C24DD2BD DD -51.4564
15 0028 424DD2BD DD 57.4564
16 002C C28AEA4B DD -63.4570
17 ;------------double----------------
18 0030 4051400000000000 ad DQ 63.0
19 0038 4049800000000000 DQ 57.0
20 0040 C051400000000000 bd DQ -63.0
21 0048 C049800000000000 DQ -57.0
