4Исходный текст (КП - будильник)

2017-12-28СтудИзба

Описание файла

Файл "4Исходный текст" внутри архива находится в следующих папках: КП - будильник, кулаковы. Документ из архива "КП - будильник", который расположен в категории "". Всё это находится в предмете "системное программирование" из 5 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "системное программирование" в общих файлах.

Онлайн просмотр документа "4Исходный текст"

Текст из документа "4Исходный текст"

Московский государственный технический университет им. Н.Э.Баумана

_________________________________________________________________

Утверждаю:

Большаков С.А.

"__"_____________2006 г.

Курсовая работа по курсу Системное программирование

«Будильник »

Текст программы

(вид документа)

писчая бумага

(вид носителя)

16

(количество листов)

ИСПОЛНИТЕЛЬ:

студент группы ИУ5-53

_____________________

Кулаков А. С.

"__"_____________2006 г.





Москва - 2006

________________________________________________________________

Содержание:

1. Файл alrmclck.lst 3

2. Файл unldtsr.lst 15



1.Файл alrmclck.lst

Turbo Assembler Version 4.1 14/12/06 21:11:55 Page 1

alrmclck.ASM

1 0000 code segment 'code'

2 assume CS:code,DS:code,SS:code

3 .186

4 org 100h

5

6 0100 start:

7 0100 E9 0429 jmp init

8

9 ;*************************************************

10 ; РЕЗИДЕНТ

11 ;*************************************************

12

13 ;-----------------------данные--------------------

14 0103 20 30 30 3A 30 30 3A+ control_line db ' 00:00:00 '

15 30 30 20

16 010D 07 30 30 3A 30 30 3A+ alarm db 07h,'00:00:00 '

17 30 30 20

18 =000A alarm_1 equ $-alarm

19 0117 008A alarm_position dw 0138

20 0119 00000000 old_08 dd 0 ; Ячейка для хранения исходного вектора

21 011D 00000000 old_2F dd 0

22 0121 00000000 old_09 dd 0

23 0125 50 72 6F 67 72 61 6D+ mess_load db 'Program has already loaded !!!','$'

24 20 68 61 73 20 61 6C+

25 72 65 61 64 79 20 6C+

26 6F 61 64 65 64 20 21+

27 21 21 24

28 0144 50 72 6F 67 72 61 6D+ mess_loaded db 'Program was succesfully loaded !!!',+

29 20 77 61 73 20 73 75+ '$'

30 63 63 65 73 66 75 6C+

31 6C 79 20 6C 6F 61 64+

32 65 64 20 21 21 21 24

33 0167 0A 0D 54 68 69 73 20+ mess_help db 10,13,'This program is an alarm clock',+

34 70 72 6F 67 72 61 6D+ 10,13,'Enter time in format HH:MM:SS',10,13,'F1 - +

35 20 69 73 20 61 6E 20+ installation of an alarm clock'

36 61 6C 61 72 6D 20 63+

37 6C 6F 63 6B 0A 0D 45+

38 6E 74 65 72 20 74 69+

39 6D 65 20 69 6E 20 66+

40 6F 72 6D 61 74 20 48+

41 48 3A 4D 4D 3A 53 53+

42 0A 0D 46 31 20 2D 20+

43 69 6E 73 74 61 6C 6C+

44 61 74 69 6F 6E 20 6F+

45 66 20 61 6E 20 61 6C+

46 61 72 6D 20 63 6C 6F+

47 63 6B

48 01CB 0A 0D 54 68 65 20 69+ db 10,13,'The indicator of an alarm clock +

49 6E 64 69 63 61 74 6F+ of green color means, that it is installed correctly'

50 72 20 6F 66 20 61 6E+

51 20 61 6C 61 72 6D 20+

52 63 6C 6F 63 6B 20 6F+

Turbo Assembler Version 4.1 14/12/06 21:11:55 Page 2

alrmclck.ASM

53 66 20 67 72 65 65 6E+

54 20 63 6F 6C 6F 72 20+

55 6D 65 61 6E 73 2C 20+

56 74 68 61 74 20 69 74+

57 20 69 73 20 69 6E 73+

58 74 61 6C 6C 65 64 20+

59 63 6F 72 72 65 63 74+

60 6C 79

61 0221 0A 0D 54 68 65 20 69+ db 10,13,'The indicator of an alarm clock +

62 6E 64 69 63 61 74 6F+ of red color means a mistake in a format',10,13,'F2 +

63 72 20 6F 66 20 61 6E+ - the termination of a sound signal'

64 20 61 6C 61 72 6D 20+

65 63 6C 6F 63 6B 20 6F+

66 66 20 72 65 64 20 63+

67 6F 6C 6F 72 20 6D 65+

68 61 6E 73 20 61 20 6D+

69 69 73 74 61 6B 65 20+

70 69 6E 20 61 20 66 6F+

71 72 6D 61 74 0A 0D 46+

72 32 20 2D 20 74 68 65+

73 20 74 65 72 6D 69 6E+

74 61 74 69 6F 6E 20 6F+

75 66 20 61 20 73 6F 75+

76 6E 64 20 73 69 67 6E+

77 61 6C

78 0293 0A 0D 55 4E 4C 44 54+ db 10,13,'UNLDTSR.EXE - unload program +

79 53 52 2E 45 58 45 20+ from memory',10,13,10,13,'$'

80 2D 20 75 6E 6C 6F 61+

81 64 20 70 72 6F 67 72+

82 61 6D 20 66 72 6F 6D+

83 20 6D 65 6D 6F 72 79+

84 0A 0D 0A 0D 24

85 02C2 45 72 72 6F 72 20 70+ error_param db 'Error param !',10,13,'$'

86 61 72 61 6D 20 21 0A+

87 0D 24

88 02D2 20 30 30 3A 30 30 3A+ output_line db ' 00:00:00 '

89 30 30 20

90 =000A output_line_1 equ $-output_line

91 02DC 0074 start_position dw 0116

92 02DE 01 flag db 1

93 02DF 01 color db 1

94 02E0 01 sound db 1

95 02E1 0B*(20) clear_line db 11 dup (' ')

96

97 ;-------------------------------------------------

98 ;Процедура обработчика прерываний от клавиатуры

99 ;ВХОД: нет

100 ;ВЫХОД: нет

101 ;-------------------------------------------------

102 02EC new_09 proc

103 02EC 50 push AX

104 ;---------------Проверка нажатия клавиши F1-------

Turbo Assembler Version 4.1 14/12/06 21:11:55 Page 3

alrmclck.ASM

105 02ED E4 60 in AL,60h

106 02EF 3C 3B cmp AL,3Bh

107 02F1 74 0A je pressF1

108 ;---------------Проверка нажатия клавиши F2-------

109 02F3 3C 3C cmp AL,3Ch

110 02F5 74 7E je pressF2

111 02F7 58 pop AX

112 02F8 2E: FF 2E 0121r jmp CS:old_09

113 02FD pressF1:

114 02FD 0E push CS

115 02FE 1F pop DS

116 02FF C6 06 02DFr 01 mov color,1

117 0304 32 FF xor BH,BH

118 ;---------------Переход в начало введенной строки-

119 0306 B4 03 mov AH,03

120 0308 CD 10 int 10h

121 030A 80 EA 08 sub DL,8

122 030D B4 02 mov AH,02

123 030F CD 10 int 10h

124

125 0311 B9 0008 mov cx,8

126 0314 BE 0001 mov SI,1

127 ;---------------Считывание введенного времени-----

128 0317 m1:

129 0317 B4 08 mov AH,08

130 0319 CD 10 int 10h

131 031B 88 84 0103r mov control_line[SI],AL

132 031F 46 inc SI

133 0320 FE C2 inc DL

134 0322 B4 02 mov AH,02

135 0324 CD 10 int 10h

136 0326 E2 EF loop m1

137 ;---------------Проверка формата времени----------

138 0328 BF 0001 mov DI,1

139 032B E8 01E3 call ATOI

140 032E 80 FC 17 cmp AH,23

141 0331 77 3A ja err_time

142

143 0333 BF 0004 mov DI,4

144 0336 E8 01D8 call ATOI

145 0339 80 FC 3B cmp AH,59

146 033C 77 2F ja err_time

147

148 033E BF 0007 mov DI,7

149 0341 E8 01CD call ATOI

150 0344 80 FC 3B cmp AH,59

151 0347 77 24 ja err_time

152

153 0349 80 3E 0106r 3A cmp control_line[3],':'

154 034E 75 1D jne err_time

155

156 0350 80 3E 0109r 3A cmp control_line[6],':'

Turbo Assembler Version 4.1 14/12/06 21:11:55 Page 4

alrmclck.ASM

157 0355 75 16 jne err_time

158 ;---------------Запись в строку будильника--------

159 ;---------------введенного времени----------------

160 0357 B9 0008 mov CX,8

161 035A BE 0001 mov SI,1

162 035D m2:

163 035D 8A 84 0103r mov AL,control_line[SI]

164 0361 88 84 010Dr mov alarm[SI],AL

165 0365 46 inc SI

166 0366 FE C2 inc DL

167 0368 E2 F3 loop m2

168 036A EB 10 90 jmp ex_press

169 036D err_time:

170

171 036D C6 06 02DFr 00 mov color,0

172 0372 EB 08 90 jmp ex_press

173 0375 pressF2:

174 0375 0E push CS

175 0376 1F pop DS

176 0377 C6 06 02DEr 01 mov flag,1

177 037C ex_press:

178 ;---------------Установка бита 7 порта 61h и------

179 ;---------------возвращение в исходное состояние--

180 037C 33 C0 xor AX,AX

181 037E 8E D8 mov DS,AX

182 0380 A0 041A mov AL,DS:041Ah

183 0383 A2 041C mov DS:041Ch,AL

184

185 0386 E4 61 in AL,61h

186 0388 50 push AX

187 0389 0C 80 or AL,80h

188 038B E6 61 out 61h,AL

189 038D 58 pop AX

190 038E E6 61 out 61h,AL

191 ;---------------Сообщение контроллеру о звершении-

192 ;---------------обработки аппаратного прерывания--

193 0390 B0 20 mov AL,20h

194 0392 E6 20 out 20h,AL

195 0394 58 pop AX

196 0395 CF iret

197 0396 new_09 endp

198

199 ;-------------------------------------------------

200 ;Процедура обработчика прерываний от таймера

201 ;ВХОД: нет

202 ;ВЫХОД: нет

203 ;-------------------------------------------------

204 0396 new_08 proc

205 0396 60 pusha

206 0397 06 push ES

207 0398 1E push DS

208

Turbo Assembler Version 4.1 14/12/06 21:11:55 Page 5

alrmclck.ASM

209 0399 0E push CS

210 039A 1F pop DS

211 ;---------------Чтение времени из RTC-------------

212 ;---------------в строку времени------------------

213 039B B4 02 mov AH,02h

214 039D CD 1A int 1Ah

215 039F 72 7C jc ex

216

217 03A1 8A C5 mov AL,CH

218 03A3 E8 007F call bcd2asc

219 03A6 88 26 02D3r mov output_line[1],AH

220 03AA A2 02D4r mov output_line[2],AL

221

222 03AD 8A C1 mov AL,CL

223 03AF E8 0073 call bcd2asc

224 03B2 88 26 02D6r mov output_line[4],AH

225 03B6 A2 02D7r mov output_line[5],AL

226

227

228 03B9 8A C6 mov AL,DH

229 03BB E8 0067 call bcd2asc

230 03BE 88 26 02D9r mov output_line[7],AH

231 03C2 A2 02DAr mov output_line[8],AL

232 ;---------------Проверка совпадения времени------

233 ;---------------будильника и часов---------------

234 03C5 B9 0008 mov CX,8

235 03C8 BE 0001 mov SI,1

236 03CB comp:

237 03CB 8A 84 02D2r mov AL,output_line[SI]

238 03CF 8A A4 010Dr mov AH,alarm[SI]

239 03D3 3A E0 cmp AH,AL

240 03D5 75 08 jne go

241 03D7 46 inc SI

242 03D8 E2 F1 loop comp

243 03DA C6 06 02DEr 00 mov flag,0

244 03DF go:

245 ;---------------Вывод будильника и часов на-------

246 ;---------------экран с проверкой цвета будильника

247 03DF B9 000A mov CX,alarm_1

248 03E2 68 B800 push 0B800h

249 03E5 07 pop ES

250 03E6 8B 3E 0117r mov DI,word ptr alarm_position

251 03EA BE 010Dr mov SI,offset alarm

252

253 03ED 80 3E 02DFr 01 cmp color,1

254 03F2 74 05 je green

255 03F4 B4 4F mov AH,4fh

256 03F6 EB 03 90 jmp next1

257 03F9 green:

258 03F9 B4 2F mov AH,2fh

259 03FB next1:

260 03FB AC lodsb

Turbo Assembler Version 4.1 14/12/06 21:11:55 Page 6

alrmclck.ASM

261 03FC AB stosw

262 03FD E2 FC loop next1

263

264 03FF B9 000A mov CX,output_line_1

265 0402 68 B800 push 0B800h

266 0405 07 pop es

267 0406 8B 3E 02DCr mov DI,word ptr start_position

268 040A BE 02D2r mov SI,offset output_line

269 040D B4 2F mov ah,2fh

270 040F next2:

271 040F AC lodsb

272 0410 AB stosw

273 0411 E2 FC loop next2

274 ;---------------Выдача звукового сигнала----------

275 0413 80 3E 02DEr 00 cmp flag,0

276 0418 75 03 jne ex

277 041A E8 00C0 call BEEP

278 041D ex:

279 ;---------------Разблокировка прерываний----------

280 ;---------------в контроллере прерываний----------

281 041D B0 20 mov AL,20h

282 041F E6 20 out 20h,AL

283

284 0421 1F pop DS

285 0422 07 pop ES

286 0423 61 popa

287 0424 CF iret

288 0425 new_08 endp

289

290 ;-------------------------------------------------

291 ;Процедура преобразования BCD-числа в ASCII-символ

292 ;ВХОД: AL - упакованное BCD-число

293 ;ВЫХОД: AH - преобразованная ASCII старшая цифра +

294 BCD-числа

295 ; AL - преобразованная ASCII младшая цифра +

296 BCD-числа

297 ;-------------------------------------------------

298 0425 bcd2asc proc

299 0425 8A E0 mov AH,AL

300 0427 24 0F and AL,0Fh

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5183
Авторов
на СтудИзбе
435
Средний доход
с одного платного файла
Обучение Подробнее