· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› резидент в досе

Посл.отвђт Сообщенiе


Дата: Окт 26, 2004 19:39:10

Пиплы, подскажите, плз, как сделать резидентный ехе в досе... С комом все нормально, работает, а вот с ехе че-та не получается( может там смещения особые какие, или еще что-то...


Дата: Окт 26, 2004 19:41:47

Сегментные регистры проверить надо бы...


Дата: Окт 26, 2004 19:56:54

code segment
qq proc far
mov ah, 09
mov dx, cx
mov ds, bx
int 21h
iret
qq endp
start proc far
mov ax, 2587h
mov dx, seg qq
mov ds, dx
mov dx, offset qq
int 21h

mov ah, 27h
mov dx, offset st2
int 27h
st2:
start endp
txt db 'qwer','$'
code ends
end start
вот так вот извращался)
подскажите, плз, де неправильно...


Дата: Окт 26, 2004 20:51:47 · Поправил: MoKC0DeR

lacrimas
INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT
	DX = number of bytes to keep resident (max FFF0h)
	CS = segment of PSP

Скорректируй cs, а лучше используй INT 21h функцию 31h
INT 21 - DOS 2+ - TERMINATE AND STAY RESIDENT
	AH = 31h
	AL = return code
	DX = number of paragraphs to keep resident

P.S. Что такое txt и где испльзуется ? Не забудь что в резиденте будет недоступно


Дата: Окт 26, 2004 21:17:20

а как ентот cs скоректировать? его менять вообще можно?
З.Ы. сорри за ламерский вопрос)


Дата: Окт 26, 2004 22:22:06

lacrimas
Лучше не заморачивайся с изменением cs - юзай INT21h (AH=31h)


Дата: Окт 27, 2004 19:08:45

Большой сенк, разобралси)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.092