Listing (КП - резидентный загрузчик), страница 4

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

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

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

Просмотр 4 страницы текстового-файла онлайн

576 ;2D это мультиплексоное прерывание, используемое для организации контроля

577 ;за загруженными резидентами.

578 03DF int2Dh_handler proc far

579 03DF EB 11 jmp short actual_int2Dh_handler

580

581 03E1 ???????? old_int2Dh dd ?

582 03E5 424B dw 424Bh

583 03E7 00 db 00h

584 03E8 E9 FD5A jmp hw_reset

585 03EB 07*(00) db 7 dup (0)

586

587 03F2 actual_int2Dh_handler:

588 03F2 80 FC db 80h,0FCh ;начало команды CMP+

589 ah, число (в мнемокодах)

590 03F4 ?? mux_id db ? ;идентификатор

591 03F5 74 0790 90 je its_us ;если вызываютэтот+

592 резидент, то этот вызов обрабатывается

593 03F9 2E: FF 2E 03E1r jmp dword ptr cs:old_int2Dh ;иначе, управление передается в +

594 старыйобработчик

595

596 03FE its_us:

597 03FE 3C 02 cmp al,02h ;если номер функции+

598 больше2

599 0400 73 1F90 90 jae int2Dh_no ;то эта функция не +

600 поддерживаетсяэтим резидентом

601 0404 98 cbw +

602 ;преобразоватьбайт alв словоax

603 0405 8B F8 mov di,ax ;переместить этот +

604 номер в di

605 0407 D1 E7 shl di,1 ;и умножить на2, +

606 т.к. jumptableтаблицаслов

607 0409 2E: FF A5 040Er jmp word ptr cs:jumptable[di];косвенный переход наобработчики +

608 функций

609 +

610 ;используется di в силу архитектурных особенностей процессора

611 ;так же +

612 можно было использовать bx

613

614 040E 0412r jumptable dw offsetint2Dh_00 ;таблица переходов

615 0410 0421r dw offsetint2Dh_no

616

617

618 0412 int2Dh_00: ;функция проверки +

619 присутствия резидента в памяти

620 0412 07 pop es

621 0413 1F pop ds +

622 ;выталкивает из стека лишние данные

623 0414 61 popa

624

625 0415 B0 FF mov al,0FFh ;этот номер занят

626 0417 B9 0100 mov cx,0100h ;номерверсии 1.0

627 041A 0E push cs ;использует cs, +

Turbo Assembler Version 3.1 26/12/02 04:09:58 Page 12

loader.ASM

628 т.к. ds и es неинициализированны

629 041B 5A pop dx

630 041C BF 04DDr mov di,offset amis_sign ;в dx:di - адрес +

631 AMIS-сигнатуры

632

633 041F 9D popf

634

635 0420 CF iret

636

637 0421 int2Dh_no: ;все +

638 неподдерживаемые функции

639 0421 07 pop es

640 0422 1F pop ds +

641 ;выталкивает из стека лишние данные

642 0423 61 popa

643

644 0424 B0 00 mov al,00h ;функция не +

645 поддерживается

646

647 0426 9D popf

648

649 0427 CF iret

650

651 0428 int2Dh_handler endp ;конецобработчика

652

653 ;--------------------------------------- --------

654 ;данные

655 ;--------------------------------------- --------

656 0428 0D 0A49 4F 20 6F 70+ msg_er1 db cr,lf,'IO operation failed while loading +

657 65 7261 74 69 6F 6E+ Application 1'

658 20 6661 69 6C 65 64+

659 20 7768 69 6C 65 20+

660 6C 6F61 64 69 6E 67+

661 20 4170 70 6C 69 63+

662 61 7469 6F 6E 20 31

663 =0031 msg_er1_len equ $-msg_er1

664 0459 0D 0A49 4F 20 6F 70+ msg_er2 db cr,lf,'IO operation failed while loading +

665 65 7261 74 69 6F 6E+ Application 2'

666 20 6661 69 6C 65 64+

667 20 7768 69 6C 65 20+

668 6C 6F61 64 69 6E 67+

669 20 4170 70 6C 69 63+

670 61 7469 6F 6E 20 32

671 =0031 msg_er2_len equ $-msg_er2

672 048A 0D 0A54 68 65 20 70+ msg_unld db cr,lf,'The program hasbeen successfully unloaded!'

673 72 6F67 72 61 6D 20+

674 68 6173 20 62 65 65+

675 6E 2073 75 63 63 65+

676 73 7366 75 6C 6C 79+

677 20 756E 6C 6F 61 64+

678 65 6421

679 =002D msg_unld_len equ $-msg_unld

680 04B7 0D 0A54 68 65 20 70+ msg_unld_err db cr,lf,'The program cannot be unloaded now!'

681 72 6F67 72 61 6D 20+

682 63 616E 20 6E 6F 74+

683 20 6265 20 75 6E 6C+

684 6F 6164 65 64 20 6E+

Turbo Assembler Version 3.1 26/12/02 04:09:58 Page 13

loader.ASM

685 6F 7721

686 =0026 msg_unld_err_len equ $-msg_unld_err

687 ;--------------------------------------- --------

688 04DD 54 5352 5F 45 58 45+ amis_sign db "TSR_EXE_" ;AMIS-сигнатура, по ней +

689 5F будет идентифицироваться резидент

690 04E5 5F 4C4F 41 44 45 52+ db "_LOADER_" ;послеего загрузки+

691 5F в память

692

693 04ED 09 amis_hooklist db 09h ;AMIS:список перехваченных+

694 прерываний

695 04EE 0146r dw offset int09h_handler

696 04F0 2D db 2Dh

697 04F1 03DFr dw offset int2Dh_handler

698 ;-----------------------Exec Parameters Block

699 04F3 0000 EPB dw 0; 0000 - используем текущее окружение

700 04F5 0509r dw OFFSETCMD; указатель на CMD

701 04F7 0000 dw 0;

702 04F9 050Br dw OFFSETFCB1; указатель на FCB1

703 04FB 0000 dw 0;

704 04FD 051Br dw OFFSETFCB2; указатель на FCB2

705 04FF 0000 dw 0;

706 0501 03C6r dw OFFSETRest; указатель на Rest

707 0503 0000 dw 0;

708 0505 03C6r dw OFFSETRest; указатель на Exit

709 0507 0000 dw 0;

710 0509 00 0D CMD db 0,13

711 050B 10*(00) FCB1 db 16 DUP(0)

712 051B 10*(00) FCB2 db 16 DUP(0)

713

714 052B 45 5845 31 2E 45 58+ Exe1Prog db 'EXE1.EXE',0

715 45 00

716 0534 45 5845 32 2E 45 58+ Exe2Prog db 'EXE2.EXE',0

717 45 00

718

719 053D 0000 handle dw 0

720

721 053F 20*(00) header db 32 DUP(0) ;первые 32-байта exe-файла

722

723 055F 00 is_app_working db 0

724 0560 00 is_haveto_work db 0

725 0561 0000 which_app dw 0 ;какойфайл грузить+

726 0 - exe1.exe, не 0 - exe2.exe

727

728 0563 ???????? in_dos_addr dd ?

729

730 0567 ???? app_ss dw ?

731 0569 ???? app_sp dw ?

732

733

734 056B 0240*(????) pr_stack dw 240h dup (?)

735

736 09EB label tsr_end

737

738 ;Инициализационная часть. Устанавливает резидент в памяти, а потом удаляет себ

739 09EB initialize proc near

740 09EB 33 C9 xor cx, cx ; проверям наличие +

741 ключейв команодной

Turbo Assembler Version 3.1 26/12/02 04:09:58 Page 14

loader.ASM

742 09ED 8A 0E0080r mov cl, cmd_line_len ; строке

743 09F1 BF 0081r lea di, cmd_line

744 09F4 B0 20 mov al, ' '

745 09F6 F3> AE repe scasb

746

747 09F8 74 10 jz short no_param

748

749 09FA 81 7DFF 3F2F cmp word ptr [di-1], '?/'

750 09FF 75 09 jne short no_param

751

752

753 0A01 B9 0068 mov cx,offset msg_abt_len

754 0A04 BA 0ABAr lea dx,msg_abt

755 0A07 E8 F733 call pmsg ;выводсообщения о +

756 программе

757

758 0A0A no_param:

759 0A0A B4 34 mov ah,34h

760 0A0C CD 21 int 21h

761

762 0A0E 89 1E0563r mov word ptr [in_dos_addr],bx

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