Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CP_i_OS_D.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
143.49 Кб
Скачать

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, либо нужное число разрядов. При умножении полученные целые значения не учитываются, но они образуют результат в виде упорядоченной последовательности целых двоичных чисел.

  1. 60+3=69

  2. 60-3=51

  3. -60+3=-51

  4. -60-3=-69

  1. 4567+3=4570

  2. 4567-3=4564

  3. -4567-3=-4570

  4. -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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]