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

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

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

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

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

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

301 0429 C0 EC 04 shr AH,4

302 042C 0D 3030 or AX,3030h

303 042F C3 ret

304 0430 bcd2asc endp

305

306 ;-------------------------------------------------

307 ;Процедура обработчика проверки наличия в резидента +

308 в ОП

309 ;ВХОД: AH-признак пользовательской функции (0xFF)

310 ; AL-опция (0x00-проверка наличия, +

311 0x01-выгрузка)

312 ;ВЫХОД: AL-результат (0xAA-загружена)

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

alrmclck.ASM

313 ;-------------------------------------------------

314 0430 new_2F proc

315 ;---------------Проверка признака пользовательской +

316 функции

317 0430 80 FC FF cmp AH, 0FFH

318 0433 74 05 je my_func

319 0435 2E: FF 2E 011Dr jmp CS:old_2F

320 ;---------------Анализ входящей опции-------------

321 043A my_func:

322 043A 3C 00 cmp AL, 00H

323 043C 74 09 je loaded

324

325 043E 3C 01 cmp AL, 01H

326 0440 74 08 je uninst

327

328 0442 2E: FF 2E 011Dr jmp CS:old_2F

329

330 0447 loaded:

331 0447 B0 AA mov AL, 0AAH

332 0449 CF iret

333 ;---------------Выгрузка программы из ОП и--------

334 ;---------------восстановление обработчиков прерваний

335 044A uninst:

336 044A 1E push DS

337 044B 06 push ES

338 ;---------------Скрытие будильника и часов с экрана

339 044C 0E push CS

340 044D 1F pop DS

341 044E B9 000A mov CX,alarm_1

342 0451 68 B800 push 0B800h

343 0454 07 pop ES

344 0455 8B 3E 02DCr mov DI,word ptr start_position

345 0459 BE 02E1r mov SI,offset clear_line

346 045C B4 0F mov AH,0fh

347 045E next3:

348 045E AC lodsb

349 045F AB stosw

350 0460 E2 FC loop next3

351

352 0462 B9 000A mov CX,output_line_1

353 0465 68 B800 push 0B800h

354 0468 07 pop ES

355 0469 8B 3E 0117r mov DI,word ptr alarm_position

356 046D BE 02E1r mov SI,offset clear_line

357 0470 B4 0F mov AH,0fh

358 0472 next4:

359 0472 AC lodsb

360 0473 AB stosw

361 0474 E2 FC loop next4

362

363 0476 B8 252F mov AX, 252Fh

364 0479 2E: C5 16 011Dr lds DX, CS:old_2F

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

alrmclck.ASM

365 047E CD 21 int 21H

366

367 0480 B8 2509 mov AX, 2509h

368 0483 2E: C5 16 0121r lds DX, CS:old_09

369 0488 CD 21 int 21H

370

371 048A B8 2508 mov AX, 2508h

372 048D 2E: C5 16 0119r lds DX ,CS:old_08

373 0492 CD 21 int 21h

374

375 0494 2E: 8E 06 002C mov ES, CS:2CH

376 0499 B4 49 mov AH, 49H

377 049B CD 21 int 21H

378

379 049D 0E push CS

380 049E 07 pop ES

381 049F B4 49 mov AH, 49H

382 04A1 CD 21 int 21H

383

384 04A3 07 pop ES

385 04A4 1F pop DS

386 04A5 B0 AA mov AL, 0AAH

387 04A7 CF iret

388 04A8 new_2F endp

389

390 ;-------------------------------------------------

391 ;Процедура вывода строки на экран

392 ;ВХОД: DX - адрес строки

393 ;ВЫХОД: нет

394 ;-------------------------------------------------

395 04A8 STR_OUT proc

396 04A8 50 push AX

397 04A9 B4 09 mov AH,09h

398 04AB CD 21 int 21h

399 04AD 58 pop AX

400 04AE C3 ret

401 04AF STR_OUT endp

402

403 ;-------------------------------------------------

404 ;Процедура проверки параметра командной строки

405 ;ВХОД: нет

406 ;ВЫХОД: нет

407 ;-------------------------------------------------

408 04AF HELP proc

409 ;---------------Проверка наличия параметров-------

410 04AF BB 0080 mov BX, 80h

411 04B2 8A 17 mov DL,[BX]

412 04B4 8A CA MOV CL,DL

413 04B6 80 F9 00 CMP CL,0

414 04B9 74 21 je ext

415

416 04BB 43 inc BX

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

alrmclck.ASM

417 04BC 43 inc BX

418 ;---------------Проверка на вызов справки (/?)----

419 04BD 8A 17 mov DL,[BX]

420 04BF 43 inc BX

421 04C0 80 FA 2F cmp DL,'/'

422 04C3 75 11 jne errp

423

424 04C5 8A 17 MOV DL,[BX]

425 04C7 43 inc BX

426 04C8 80 FA 3F CMP DL,'?'

427 04CB 75 09 jne errp

428

429 04CD BA 0167r mov DX,offset mess_help

430 04D0 E8 FFD5 call STR_OUT

431 04D3 EB 07 90 jmp ext

432

433 04D6 errp:

434 04D6 BA 02C2r mov DX,offset error_param

435 04D9 E8 FFCC call STR_OUT

436 04DC ext:

437 04DC C3 ret

438 04DD HELP endp

439

440 ;-------------------------------------------------

441 ;Процедура выдачи звукового сигнала

442 ;ВХОД: нет

443 ;ВЫХОД: нет

444 ;-------------------------------------------------

445 04DD BEEP proc

446

447

448 ;---------------Интервал воспроизведения звука----

449 04DD FE 06 02E0r inc sound

450 04E1 80 3E 02E0r 05 cmp sound,5

451 04E6 75 28 jne no_s

452

453 ;---------------Включение динамика----------------

454 04E8 E4 61 in AL,61h

455 04EA 0C 03 or AL,3

456 04EC E6 61 out 61h,AL

457 ;---------------Канал 2, режим 3------------------

458 04EE B0 B6 mov AL,10110110b

459 04F0 E6 43 out 43h ,AL

460

461 ;---------------Установка делителя частоты--------

462 04F2 B8 0A91 mov AX,2705

463 04F5 E6 42 out 42h,AL

464 04F7 8A C4 mov AL,AH

465 04F9 E6 42 out 42h,AL

466 ;---------------Пауза-----------------------------

467 04FB B9 0001 mov cx,0001h

468 04FE BA 86A0 mov dx,086A0h

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

alrmclck.ASM

469 0501 B4 86 mov ah,86h

470 0503 CD 15 int 15h

471 ;---------------Выключение динамика---------------

472 0505 E4 61 in AL,61h

473 0507 24 FC and AL,11111100b

474 0509 E6 61 out 61h,AL

475

476 050B C6 06 02E0r 00 mov sound,0

477 0510 no_s:

478 0510 C3 ret

479 0511 BEEP endp

480

481 ;-------------------------------------------------

482 ;Функция преобразования строки (2 символа -

483 ;control_line[DI] и control_line[DI+1]) в +

484 однобайтовое число

485 ;Вход: control_line - строка, DI - номер символа

486 ;Выход: AH - число

487 ;-------------------------------------------------

488 0511 ATOI proc near

489 0511 52 PUSH DX

490 0512 8A 95 0103r mov DL,control_line[DI]

491 0516 47 inc DI

492 0517 80 EA 30 sub DL,'0'

493

494 051A B0 0A mov AL,0ah

495 051C F6 E2 mul DL

496 051E 8A E0 mov AH,AL

497 0520 8A 95 0103r mov DL,control_line[DI]

498 0524 47 inc DI

499 0525 80 EA 30 sub DL,'0'

500

501 0528 02 E2 add AH,DL

502 052A 5A pop DX

503 052B C3 ret

504 052C ATOI endp

505

506 ;*************************************************

507 ; ИНИЦИАЛИЗАЦИЯ

508 ;*************************************************

509 052C init:

510 ;---------------Проверка загрузки программы в ОП--

511 052C B8 FF00 mov AX, 0FF00h

512 052F CD 2F int 2Fh

513 0531 3C AA cmp AL, 0AAh

514 0533 74 68 je already_load

515

516 ;---------------Установка текстового режима-------

517 0535 B4 03 mov AH,03

518 0537 CD 10 int 10h

519

520 0539 B4 00 mov AH,00h

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

alrmclck.ASM

521 053B B0 83 mov AL,83h

522 053D CD 10 int 10h

523

524 053F B4 02 mov AH,02

525 0541 CD 10 int 10h

526

527 0543 E8 FF69 call HELP

528 ;---------------Сохрание исходного вектора 2Fh----

529 0546 B4 35 mov AH,35h

530 0548 B0 2F mov AL,2Fh

531 054A CD 21 int 21h

532 054C 89 1E 011Dr mov word ptr old_2F,BX

533 0550 8C 06 011Fr mov word ptr old_2F+2,ES

534 ;---------------Установка нашего обработчика 2Fh--

535 0554 B4 25 mov AH,25h

536 0556 B0 2F mov AL,2Fh

537 0558 BA 0430r mov DX,offset new_2F

538 055B CD 21 int 21h

539 ;---------------Сохрание исходного вектора 08h----

540 055D B4 35 mov AH,35h

541 055F B0 08 mov AL,08h

542 0561 CD 21 int 21h

543 0563 89 1E 0119r mov word ptr old_08,BX

544 0567 8C 06 011Br mov word ptr old_08+2,ES

545 ;---------------Установка нашего обработчика 08h--

546 056B B4 25 mov AH,25h

547 056D B0 08 mov AL,08h

548 056F BA 0396r mov DX,offset new_08

549 0572 CD 21 int 21h

550 ;---------------Сохрание исходного вектора 09h----

551 0574 B4 35 mov AH,35h

552 0576 B0 09 mov AL,09h

553 0578 CD 21 int 21h

554 057A 89 1E 0121r mov word ptr old_09,BX

555 057E 8C 06 0123r mov word ptr old_09+2,ES

556 ;---------------Установка нашего обработчика 09h--

557 0582 B4 25 mov AH,25h

558 0584 B0 09 mov AL,09h

559 0586 BA 02ECr mov DX,offset new_09

560 0589 CD 21 int 21h

561

562 058B BA 0144r mov DX, offset mess_loaded

563 058E E8 FF17 call STR_OUT

564 ;---------------Выгрузка резидента в ОП-----------

565 0591 B4 31 mov ah,31h

566 0593 B0 00 mov al, 0

567 0595 BA 0053 mov dx,(init-start+10fh)/16

568 0598 CD 21 int 21h

569 059A EB 07 90 jmp exit

570

571 059D already_load:

572 059D BA 0125r mov DX, offset mess_load

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

alrmclck.ASM

573 05A0 E8 FF05 call STR_OUT

574 05A3 exit:

575 05A3 B8 4C00 mov AX,4C00h ;Функция завершения +

576 программы

577 05A6 CD 21 int 21h

578

579 05A8 code ends

580 end start

2.Файл unldtsr.lst

Turbo Assembler Version 4.1 08/12/06 20:57:21 Page 1

unldtsr.ASM

1 0000 data segment 'data'

2 ;-----------------------данные--------------------

3 0000 50 72 6F 67 72 61 6D+ mess_hasnt_load db 'Program hasnt already loaded +

4 20 68 61 73 6E 74 20+ !!!','$'

5 61 6C 72 65 61 64 79+

6 20 6C 6F 61 64 65 64+

7 20 21 21 21 24

8 0021 50 72 6F 67 72 61 6D+ mess_unload db 'Program unloaded and interrupts +

9 20 75 6E 6C 6F 61 64+ restored !!!','$'

10 65 64 20 61 6E 64 20+

11 69 6E 74 65 72 72 75+

12 70 74 73 20 72 65 73+

13 74 6F 72 65 64 20 21+

14 21 21 24

15

16 004E data ends

17

18 0000 stck segment stack 'stack'

19 0000 0100*(??) db 256 dup (?)

20 0100 stck ends

21

22

23 0000 cseg segment 'code'

24 assume CS:cseg, DS:data, SS:stck

25 0000 start:

26 0000 B8 0000s mov AX,data

27 0003 8E D8 mov DS,AX

28 ;---------------Проверка загрузки резидента-----

29 0005 B8 FF01 mov AX, 0FF01h

30 0008 CD 2F int 2Fh

31 000A 3C AA cmp AL, 0AAh

32 000C 74 09 je unload

33 ;---------------Резидент не загружен------------

34 000E hasnt_load:

35 000E BA 0000r mov DX, offset mess_hasnt_load

36 0011 E8 000E call STR_OUT

37 0014 EB 07 90 jmp exit

38 ;---------------Резидент выгружен---------------

39 0017 unload:

40 0017 BA 0021r mov DX, offset mess_unload

41 001A E8 0005 call STR_OUT

42

43 001D exit:

44 001D B8 4C00 mov AX,4C00h ;Функция завершения +

45 программы

46 0020 CD 21 int 21h

47

48 ;-------------------------------------------------

49 ;Процедура вывода строки на экран

50 ;ВХОД: DX - адрес строки

51 ;ВЫХОД: нет

52 ;-------------------------------------------------

Turbo Assembler Version 4.1 08/12/06 20:57:21 Page 2

unldtsr.ASM

53 0022 STR_OUT proc near

54 0022 50 push AX

55 0023 B4 09 mov AH,09h

56 0025 CD 21 int 21h

57 0027 58 pop AX

58 0028 C3 ret

59 0029 STR_OUT endp

60

61 0029 cseg ends

62

63 end start

16


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