Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

звіт лаб6

.doc
Скачиваний:
14
Добавлен:
31.05.2020
Размер:
264.7 Кб
Скачать

Міністерство науки і освіти України

Технічний коледж національного університету

«Львівська політехніка»

ЗВІТ

з лабораторної роботи №6

З предмету архітектура комп’ютера

Виконав: студент групи 31-КІ

Мартинюк Р.

Прийняв:

Чистяк В. І.

Львів - 2020

Мета роботи:

  • Ознайомитися з поданням чисел у нормальній формі. Засвоїти порядок нормалізації чисел з рухомою комою. Ознайомитися з поняттям “характеристика” для чисел з рухомою комою.

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

  • Розробити алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'.ютера - симулятора DeComp.

Хід виконання роботи

  1. Розробити алгоритм і написати програму додавання довільних (додатних і від’ємних) двійкових чисел із рухомою комою у модифікованому доповнювальному коді в інструкціях симулятора DeComp. Числа подаються у форматі:

Знак порядку

Знак мантиси

Порядок

Мантиса

2 розряди

2 розряди

4 розряди

8 розрядів

У алгоритмі передбачити аналіз отриманого результату на:

  • переповнення розрядної сітки (порушення нормалізації вліво);

  • наявність порушення нормалізації вправо;

  • від'ємний результат

Передбачити відповідні заходи з корекції результату.

Блок схема алгоритму:

Так

Ні

Перевести у доповняльний код

Ні

Так

Перевести у доповняльний код

Додавання порядків у доповняльному коді

Так

Ні

Так

Ні

Від порядку числа A відняти порядок числа В

Ні

Так

Збільшити порядок числа В на 1, зсув мантиси вправо

Збільшити порядок числа А на 1, зсунути мантису вправо

Ні

Ні

Так

Так

Ні

Так

Перевід числа у доповняльний код

Ні

Так

Перевід числа у доповняльний код

Додавання чисел А та В

Ні

Так

Зсув результату вправо, збільшення порядку на 1

Ні

Так

Перевід у прямий код

Ні

Зсув мантиси вліво, зменшення порядку на 1

Так

Після створення алгоритму, я приступаю до написання коду. Перед виконанням програми виконую таку підготовку:

Комірка 010 – число А = 0,11002*1011 → А = (0000 0011 0000 11002)

Комірка 110 – число В = -0,10002*1010 В = (0011 0010 0000 10002)

Комірка 210 – число (0000 0000 0000 00012) - маска. Допомагає переводити у модифікований доповняльний код мантису.

Комірка 310 – число (1100 0000 0000 00002) - маска .Слугує для визначення знаку мантис А та В.

Комірка 410 – число (0011 0000 0000 00002) - маска ,служить для Слугує для визначення знаку порядків .

Комірка 510 – число (0000 0000 1000 00002) – маска. Допомагає переводити у модифікований доповняльний код порядок.

Комірка 610 – число (0000 0000 1111 11112) – маска. Слугує для відокремлення мантис без знаку.

Комірка 710 – число (1111 1111 0000 00002) – маска. Слугує для відокремлення порядку.

Комірка 810 – число (0000 0000 0000 00002)

Комірка 910 – число (1111 0000 1111 11112) – маска . Слугує для відокремлення знаків і мантиси від порядку.

Комірка 1010 – число (0000 1111 0000 00002) – маска. Слугує для відокремлення порядку без знаку.

Комірка 1110 – число (1100 1111 0000 00002) – маска. Слугує для відокремлення порядку зі знаком.

Комірка 1210 – число (0011 0000 1111 11112) – маска. Слугує для відокремлення мантис зі знаком.

Комірка 1310 – число (0011 1111 1111 11112) – маска. Слугує для відокремлення мантиси із знаком і порядку без знаку зі знаком.

Комірка 1410 – число (0000 1111 1111 11112) – маска. Слугує для відокремлення мантиси і порядку без знаків.

Комірка 1510 – число (0000 0000 0000 00002)

Комірка 1610 – число (0000 0000 0000 00002)

Комірка 1710 – число (0000 0000 0000 00002)

Комірка 1810 – число (0000 0001 0000 00002) маска. Перевіряє чи є порушення нормалізаці вліво

Адреса комірки пам’яті

Код інструкції

(двійковий)

Мнемонічний формат

інструкції

Коментар інструкцій, що відповідають блокам алгоритму програми

19

0000 0000 0000 0000

LOAD 0

Перевірка чи порядок числа А від’ємний, якщо так то ми його переводимо в доповняльний код

20

1010 0000 0011 1011

AND 9

21

0100 0000 0000 1001

STORE 199

22

0001 0000 0110 0110

JP 30

23

0000 0000 0000 1000

LOAD 0

24

0100 0000 0000 1010

AND 10

25

0010 0000 0000 1001

ADD 9

26

0111 0000 0000 0000

NOT

27

0010 0000 0001 0010

ADD 18

28

0010 0000 1100 0111

ADD 199

29

0001 0000 0000 0000

STORE 0

30

0000 0000 0000 0001

LOAD 1

Перевірка чи порядок числа В від’ємний, якщо так то ми його переводимо в доповняльний код

31

1010 0000 0100 0110

JP 41

32

0100 0000 0000 1001

AND 9

33

0001 0000 1100 0111

STORE 199

34

0000 0000 0000 0001

LOAD 1

35

0100 0000 0000 1010

AND 10

36

0010 0000 0000 1001

ADD 9

37

0111 0000 0000 0000

NOT

38

0010 0000 0001 0010

ADD 18

39

0010 0000 1100 0111

ADD 199

40

0001 0000 0000 0001

STORE 1

41

0000 0000 0000 0000

LOAD 0

Додавання порядків у модифікованому доповняльному коді

42

0100 0000 0000 1011

AND 11

43

0001 0000 1100 1000

STORE 200

44

0000 0000 0000 0001

LOAD 1

45

0100 0000 0000 1011

AND 11

46

0010 0000 110 1000

ADD 200

47

1101 0000 1110 0011

JC 198

Перевірка, чи відбулось переповнення розрядної сітки, якщо так, то результат втрачено

48

0000 0000 0000 0000

LOAD 0

Від першого порядку віднімаємо другий порядок

49

0100 0000 000 1011

AND 11

50

0001 0000 1100 1001

STOR 201

51

0000 0000 0000 0001

LOAD 1

52

0100 0000 0000 1011

AND 11

53

0011 0000 1100 1001

SUB 201

54

1001 0000 0111 0011

JZ 86

55

1101 0000 0110 0100

JC 71

56

0000 0000 0000 0001

LOAD 1

Якщо результат від’ємний, то збільшуємо порядок числа В на 1, та робимо зсув мантиси вправо

57

0100 0000 0000 1011

AND 11

58

0010 0000 0001 0010

ADD 18

59

0001 0000 1100 1010

STORE 202

60

0000 0000 0000 0001

LOAD 1

61

0100 0000 0000 0100

AND 4

62

0001 0000 1100 1011

STORE 203

63

0000 0000 0000 0001

LOAD 1

64

0100 0000 0000 0110

AND 6

65

1111 0010 0000 0000

LSR

66

0010 0000 1100 1010

ADD 202

67

0010 0000 1100 1011

ADD 203

68

0001 0000 0000 0001

STORE 1

69

0011 0000 0000 0001

SUB 1

70

1001 0000 0101 0000

JZ 61

71

0000 0000 0000 0100

LOAD 8

Якщо результат додатній, то збільшуємо порядок числа А на 1, та робимо зсув мантиси вправо

72

0100 0000 0000 1011

AND 11

73

0010 0000 0001 0010

ADD 18

74

0001 0000 1100 1010

STORE 202

75

0000 0000 0000 0000

LOAD 0

76

0100 0000 0000 0100

AND 4

77

0001 0000 1100 1011

STORE 203

78

0000 0000 0000 0000

LOAD 0

79

0100 0000 0000 0110

AND 6

80

1111 0010 0000 0000

LSR

81

0010 0000 1100 1010

ADD 202

82

0010 0000 1100 1011

ADD 203

83

0001 0000 0000 0000

STORE 0

84

0011 0000 0000 0000

SUB 0

85

1001 0000 0100 1001

JZ 48

86

0000 0000 0000 1000

LOAD 0

Перевірка чи число А від’ємне, якщо так, то перевід числа у модифікований доповняльний код

87

1111 0000 0000 0000

LSL

88

1111 0000 0000 0000

LSL

89

1010 0000 0111 1111

JP 98

90

0000 0000 0000 1000

LOAD 0

91

0100 0000 0000 0111

AND 7

92

0001 0000 1100 1100

STORE 204

93

0000 0000 0000 0000

LOAD 0

94

0100 0000 0000 0000

AND 6

95

0111 0000 0000 0000

NOT

96

0010 0000 0000 0010

ADD 2

97

0010 0000 1100 1100

ADD 204

98

0000 0000 0000 0001

LOAD 1

Перевірка чи число В від’ємне, якщо так, то перевід числа у модифікований доповняльний код

99

1111 0000 0000 0000

LSL

100

1111 0000 0000 0000

LSL

101

1010 0000 1000 1101

JP 105

102

0000 0000 0000 0001

LOAD 1

103

0100 0000 0000 0111

AND 7

104

0001 0000 1100 1100

STORE 204

105

0000 0000 0000 0001

LOAD 1

106

0100 0000 0000 0110

AND 6

107

0111 0000 0000 0000

NOT

108

0010 0000 0000 0010

ADD 2

109

0010 0000 1100 1100

ADD 204

110

0100 0000 0000 1100

AND 12

111

0001 0000 1100 1101

STORE 205

112

0000 0000 0000 0000

LOAD 0

Додавання чисел А та В у модифікованому доповняльному коді

113

0100 0000 0000 1100

AND 12

114

1111 0000 0000 0000

LSL

115

1111 0000 0000 0000

LSL

116

0001 0000 1100 1110

STORE 109

117

0100 0000 0000 0011

AND 3

118

0001 0000 1100 1111

STORE 207

119

0000 0000 1100 1110

LOAD 206

120

0100 0000 0000 1101

AND 13

121

1111 0000 0000 0000

LSL

122

1111 0000 0000 0000

LSL

123

1111 0000 0000 0000

LSL

124

1111 0000 0000 0000

LSL

125

0010 0000 1100 1111

ADD 207

126

0001 0000 1101 0000

STORE 208

127

0000 0000 0000 0001

LOAD 1

128

0100 0000 0000 1100

AND 12

129

1111 0000 0000 0000

LSL

130

1111 0000 0000 0000

LSL

131

0001 0000 110 1110

STORE 206

132

0100 0000 0000 0011

AND 3

133

0001 0000 1100 1111

STORE 207

134

0000 0000 1100 1110

LOAD 206

135

0100 0000 0000 1101

AND 13

136

1111 0000 0000 0000

LSL

137

1111 0000 0000 0000

LSL

138

1111 0000 0000 0000

LSL

139

1111 0000 0000 0000

LSL

140

0010 0000 0110 1110

ADD 207

141

0010 0000 1101 0000

ADD 208

142

1100 0000 1011 1111

JNC 149

Перевірка чи відбулося переповнення розрядної сітки.

143

1111 0010 0000 0000

LSR

144

1111 0010 0000 0000

LSR

145

1111 0010 0000 0000

LSR

146

0001 0000 1101 0001

STORE 209

147

0100 0000 0000 0100

AND 4

148

0001 0000 1101 0010

STORE 210

149

0000 0000 1101 0001

LOAD 209

Якщо так, то зсув результату вправо, збільшення порядку на 1.

150

0100 0000 0000 1110

AND 14

151

1111 0010 0000 0000

LSR

152

1111 0010 0000 0000

LSR

153

1111 0010 0000 0000

LSR

154

1111 0010 0000 0000

LSR

155

0010 0000 1101 0010

ADD 210

156

0001 0000 1101 0010

STORE 210

157

0000 0000 1101 0000

LOAD 208

158

0100 0000 0000 0011

AND 3

159

0010 0000 0000 1010

ADD 10

160

0010 0000 1101 0010

ADD 210

161

0001 0000 1101 0010

STORE 210

162

0000 0000 1101 0010

LOAD 210

Перевірка чи результат від’ємний, якщо так то перевід у прямий код.

163

1111 1000 0000 0000

ROL

164

1111 1000 0000 0000

ROL

165

1101 0000 1100 1101

JS 205

166

0001 0000 1101 0011

STORE 211

167

0100 0000 0000 0111

AND 7

168

0001 0000 1101 0100

STORE 212

169

0000 0000 1101 0011

LOAD 211

170

0100 0000 0000 0110

AND 6

171

0100 0000 0000 0111

ADD7

172

0111 0000 0000 0000

NOT

173

0100 0000 0000 0010

ADD 2

174

0010 0000 1101 0010

ADD 212

175

0001 0000 0000 1111

STORE 15

176

0000 0000 0000 1111

LOAD 15

Перевірка чи нормалізоване число.

177

0100 0000 0000 0101

AND 5

178

0011 0000 0000 0101

SUB 5

179

1001 0000 1110 0011

JZ 187

180

0000 0000 0000 0101

LOAD 5

181

0100 0000 0000 0110

AND 6

182

1111 0000 0000 0000

LSL

183

0001 0000 0001 000

STORE 16

184

0000 0000 001 0001

LOAD 17

185

0010 0000 0001 0010

ADD 18

186

0001 0000 0001 0001

STORE 17

187

0000 0000 0001 0000

LOAD 16

188

0100 0000 0000 0101

AND 5

189

0011 0000 0000 0101

SUB 5

190

1001 0000 1101 1110

JZ 193

191

0000 0000 0001 0000

LOAD 16

Якщо ні, то зсув мантиси вліво, зменшення порядку на 1.

192

1010 0000 1101 0011

JP 182

193

0000 0000 0000 1111

LOAD 15

194

0100 0000 0000 0111

AND 7

195

0010 0000 0001 0000

ADD 16

196

0011 0000 0001 0010

SUB 18

197

0001 0000 0000 1111

STORE 15

198

0111 1100 0000 0000

HALT

Зупинка процесора

Соседние файлы в предмете Архитектура ЭВМ