Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2011, 01:16   #1
Lazio
Форумчанин
 
Регистрация: 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
>
Lazio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер 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