Листинг (1071452), страница 3

Файл №1071452 Листинг (КП - неизвестно что 4) 3 страницаЛистинг (1071452) страница 32017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

583 03ED CD 21 int 21h

584

585 ; -----------------------------------------------------------------

586 03EF 0E push CS ; DS = CS

587 03F0 1F pop DS

588

589 03F1 B4 09 mov AH, 09h ; сообщение о загрузке

590 03F3 BA 045Er lea DX, msg_loadSuccess

591 03F6 CD 21 int 21h

592

593 03F8 B8 3100 mov AX, 3100h ; выйти и оставить в ОП резидентную часть

594 03FB BA 003A mov DX, (tsr_end - start + 10Fh)/16 ; размер резидента

595 03FE CD 21 int 21h

596 0400 load ENDP

597

598 ; +

599 --------------------------------------------------------------

600 --------

601 ; Разбор параметра на предмет '/?'

602 ; Если находит '/?' - выводит справку и выходит из программы (ВАЖНО: выход из программы != +

603 выгрузке резидента)

604 ; Если находит неизвестный аргумент - выводит ошибку и выходит из программы

605 ; Если аргументов нет, ничего не делает

606 ; +

607 --------------------------------------------------------------

608 --------

609

610 0400 params PROC

611 0400 06 push ES

612 0401 B5 00 mov CH, 0

613 0403 26: 8A 0E 0080 mov CL, ES:[80h] ; CL = количество введенных символов

614 0408 80 F9 00 cmp CL, 0 ; если введено 0

615 040B 74 4F je p_noArgs ; выходим из процедуры

616

617 040D BE 0081 mov SI, 81h ; первый считанный символ

618

619 0410 p_checkNextLetter: ; пропустить пробелы

620 0410 26: 8A 04 mov AL, ES:[SI] ; AL - очередной символ

621 0413 3C 20 cmp AL, ' '

622 0415 75 06 jne p_getArgs ; если не пробел – переходим к проверке

623 0417 46 inc SI ; переходим к следующему символу

624 0418 E2 F6 loop p_checkNextLetter

625

626 041A EB 40 90 jmp p_noArgs ; если вся строка состоит из пробелов, аргументов нет +

627

Turbo Assembler Version 3.1 04/18/14 08:08:07 Page 12

kurs1.asm

628

629 041D p_getArgs:

630 041D 26: 8A 04 mov AL, ES:[SI] ; AL - очередной символ

631 0420 3C 2F cmp AL, '/' ; '/?' - первый символ '/'

632 0422 75 1E jne p_errorArgs

633 0424 46 inc SI ; переходим к след букве

634 0425 FE C9 dec CL ; уменьшаем счетчик несчитанных букв

635 0427 80 F9 00 cmp CL, 0 ; если букв больше не осталось - ошибка

636 042A 74 16 je p_errorArgs

637

638 042C 26: 8A 04 mov AL, ES:[SI] ; AL - очередной символ

639 042F 3C 3F cmp AL, '?' ; '/?' - второй символ '?'

640 0431 75 0F jne p_errorArgs

641 0433 46 inc SI ; к след букве

642 0434 FE C9 dec CL

643 0436 80 F9 00 cmp CL, 0 ; если букв не осталось, значит введено точно '/?', выведем +

644 help-сообщение

645 0439 74 14 je p_help

646

647 043B 26: 8A 04 mov AL, ES:[SI] ; если буквы всё таки остали, но следующая буква за '/?' - пробел, +

648 выведем help-сообщение

649 043E 3C 20 cmp AL, ' '

650 0440 74 0D je p_help

651

652 0442 p_errorArgs:

653 0442 07 pop ES

654 0443 B4 09 mov AH, 09h ; сообщение об ошибке

655 0445 BA 0500r lea DX, msg_badArgs

656 0448 CD 21 int 21h

657 044A B8 4C01 mov AX, 4C01h ; выйдем с кодом ошибки 1

658 044D CD 21 int 21h

659

660 044F p_help:

661 044F 07 pop ES

662 0450 B4 09 mov AH, 09h ; help-сообщение

663 0452 BA 0470r lea DX, msg_help

664 0455 CD 21 int 21h

665 0457 B8 4C00 mov AX, 4C00h ; выйдем с кодом 0 (успех)

666 045A CD 21 int 21h

667

668 045C p_noArgs:

669 045C 07 pop ES

670 045D C3 ret ; выйдем из ПРОЦЕДУРЫ

671 045E params ENDP

672

673 ; ------------------------------------------------------------

674 ; ----------------- Блок данных, используемых только при загрузке резидента --------------------

675 ; ------------------------------------------------------------

676

677 045E 90 A5 A7 A8 A4 A5 AD+ msg_loadSuccess db 'Резидент загружен$'

678 E2 20 A7 A0 A3 E0 E3+

679 A6 A5 AD 24

680 0470 46 39 20 2D 20 A7 A0+ msg_help db 'F9 - запустить таймер на 7 секунд', 10, 13, \

681 AF E3 E1 E2 A8 E2 EC+ 'F1 - включить курсив русской буквы И', 10, 13, \

682 20 E2 A0 A9 AC A5 E0+ 'F2 - руссифицировать ЛМНОП', 10, 13, \

683 20 AD A0 20 37 20 E1+ 'F3 - заблокировать ввод латинских символов', '$'

684 A5 AA E3 AD A4 0A 0D+

Turbo Assembler Version 3.1 04/18/14 08:08:07 Page 13

kurs1.asm

685 46 31 20 2D 20 A2 AA+

686 AB EE E7 A8 E2 EC 20+

687 AA E3 E0 E1 A8 A2 20+

688 E0 E3 E1 E1 AA AE A9+

689 20 A1 E3 AA A2 EB 20+

690 88 0A 0D 46 32 20 2D+

691 20 E0 E3 E1 E1 A8 E4+

692 A8 E6 A8 E0 AE A2 A0+

693 E2 EC 20 8B 8C 8D 8E+

694 8F 0A 0D 46 33 20 2D+

695 20 A7 A0 A1 AB AE AA+

696 A8 E0 AE A2 A0 E2 EC+

697 20 A2 A2 AE A4 20 AB+

698 A0 E2 A8 AD E1 AA A8+

699 E5 20 E1 A8 AC A2 AE+

700 AB AE A2 24

701 0500 8E E8 A8 A1 AA A0 20+ msg_badArgs db 'Ошибка в аргументах$'

702 A2 20 A0 E0 A3 E3 AC+

703 A5 AD E2 A0 E5 24

704

705 ; ----------------------------------------------------------------------------------------------

706

707 0514 codeSegment ENDS

708

709 END start

Turbo Assembler Version 3.1 04/18/14 08:08:07 Page 14

Symbol Table

Symbol Name Type Value

??DATE Text "04/18/14"

??FILENAME Text "kurs1 "

??TIME Text "08:08:07"

??VERSION Number 030A

@32BIT Text 0

@CODE Text DGROUP

@CODESIZE Text 0

@CPU Text 0707H

@CURSEG Text CODESEGMENT

@DATA Text DGROUP

@DATASIZE Text 0

@FILENAME Text KURS1

@INTERFACE Text 00H

@MODEL Text 1

@STACK Text DGROUP

@WORDSIZE Text 2

IGNORELETTER Near CODESEGMENT:01AB

IGNORE_ACTIVE Byte CODESEGMENT:0175

IGNORE_KEY Number 003D

IGNORE_TABLE Byte CODESEGMENT:0176

IL_1 Near CODESEGMENT:01C1

IL_EXIT Near CODESEGMENT:01E7

IL_EXITPOP Near CODESEGMENT:01E5

IL_NEXTLETTER Near CODESEGMENT:01D0

INIT Near CODESEGMENT:0392

INT09H_OFFSET Word CODESEGMENT:0133

INT09H_SEGMENT Word CODESEGMENT:0135

INT1CH_OFFSET Word CODESEGMENT:0137

INT1CH_SEGMENT Word CODESEGMENT:0139

INT2FH_OFFSET Word CODESEGMENT:012F

INT2FH_SEGMENT Word CODESEGMENT:0131

I_GO_LOADING Near CODESEGMENT:03B0

KURS_ACTIVE Byte CODESEGMENT:0158

KURS_KEY Number 003B

KURS_SYMBOLINDEX Number 0088

KURS_SYMBOLNEW Byte CODESEGMENT:0159

LOAD Near CODESEGMENT:0398

MSG_ALREADYLOADED Byte CODESEGMENT:0119

MSG_BADARGS Byte CODESEGMENT:0500

MSG_HELP Byte CODESEGMENT:0470

MSG_LOADSUCCESS Byte CODESEGMENT:045E

MSG_UNLOAD Byte CODESEGMENT:0103

NEW09H_CTRLU Near CODESEGMENT:02AC

NEW09H_DONTEXIT Near CODESEGMENT:0239

NEW09H_GOFAREXIT Near CODESEGMENT:0236

NEW09H_IGNORE_ACTIVE Near CODESEGMENT:02D1

NEW09H_IGNORE_KEY Near CODESEGMENT:028D

NEW09H_KURS_KEY Near CODESEGMENT:0277

NEW09H_NEWEXIT Near CODESEGMENT:02DA

NEW09H_OLDEXIT Near CODESEGMENT:02D1

NEW09H_RUSS_ACTIVE Near CODESEGMENT:02BC

NEW09H_RUSS_KEY Near CODESEGMENT:0282

NEW09H_TMR_KEY Near CODESEGMENT:0245

NEW1CH_EXIT Near CODESEGMENT:0325

Turbo Assembler Version 3.1 04/18/14 08:08:07 Page 15

Symbol Table

NEW2FH_QQ Near CODESEGMENT:033C

NEW2FH_TSRUNLOAD Near CODESEGMENT:0340

NEW_09H Near CODESEGMENT:021B

NEW_1CH Near CODESEGMENT:02ED

NEW_2FH Near CODESEGMENT:0326

OLD2FH_CALL Near CODESEGMENT:0337

OLDKURSRETURN Near CODESEGMENT:026A

PARAMS Near CODESEGMENT:0400

P_CHECKNEXTLETTER Near CODESEGMENT:0410

P_ERRORARGS Near CODESEGMENT:0442

P_GETARGS Near CODESEGMENT:041D

P_HELP Near CODESEGMENT:044F

P_NOARGS Near CODESEGMENT:045C

RL_EXITFAIL Near CODESEGMENT:0218

RL_NEXTLETTER Near CODESEGMENT:01FA

RUSSLETTER Near CODESEGMENT:01E8

RUSS_ACTIVE Byte CODESEGMENT:0169

RUSS_ASCII Byte CODESEGMENT:0170

RUSS_KEY Number 003C

RUSS_SCANCODE Byte CODESEGMENT:016A

START Near CODESEGMENT:0100

TMR_ACTIVE Byte CODESEGMENT:0155

TMR_KEY Number 0043

TMR_MSG Byte CODESEGMENT:013B

TMR_TIME Word CODESEGMENT:0156

TMR_TIMEALL Number 1B58

TSR_END Number CODESEGMENT:0392

Groups & Segments Bit Size Align Combine Class

CODESEGMENT 16 0514 Para none CODE

DGROUP Group

_DATA 16 0000 Word Public DATA

_TEXT 16 0000 Word Public CODE

Характеристики

Тип файла
Документ
Размер
58,64 Kb
Тип материала
Высшее учебное заведение

Список файлов курсовой работы

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