|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.05.2011, 01:16 | #1 |
Форумчанин
Регистрация: 25.02.2009
Сообщений: 113
|
Ассемблер
Есть две программы: резидентная установочная и обработчик
Резидентная 1.exe: codesg segment assume cs:codesg, ds:codesg org 100h begin: jmp setup msg db "Test!!!",13,10,"$" old70h dd ? int70h proc far ;выгрузка из памяти push ax push ds push dx mov ax, seg msg mov ds, ax ;вывод сообщения на экран mov ah, 09h lea dx, msg int 21h ;загрузка в память pop dx pop ds pop ax iret int70h endp ;получаем вектор прерывания setup: mov ax, 3570h int 21h mov word ptr old, bx mov word ptr old + 2, es mov dx, seg int70h mov ds, dx mov dx, offset int70h ;установка вектора прерывания mov ax, 2570h int 21h mov dx, offset setup + 100h int 27h codesg ends end begin Обработчик 2.exe: ;сегмент стека stacksg segment para stack 'Stack' dw 16 dup(?) stacksg ends ;сегмент кода codeseg segment assume cs:codesg, ss:stacksg ;обработчик прерывания main: mov ax, stacksg mov ss, ax int 70h mov ax, 4c00h int 21h codesg ends end main работает это так: >2.exe >1.exe >2.exe >Test!!! т.е если не произведена установка выводится сообщение не будет Требуется создать программу, которая будет выгружать резидентную из памяти, т.е работало чтобы всё так >1.exe >2.exe >Test!!! >3.exe >2.exe > |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ассемблер | farxad | Помощь студентам | 6 | 11.09.2016 14:19 |
ассемблер | klim_666 | Фриланс | 5 | 29.12.2010 14:52 |
Ассемблер | Opiym | Фриланс | 3 | 20.05.2010 12:36 |
Ассемблер | maziLa | Помощь студентам | 3 | 06.07.2009 10:31 |