home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BURKS 2
/
BURKS_AUG97.ISO
/
BURKS
/
SOFTWARE
/
LIBS
/
PMC101.ZIP
/
LIBSRC.ZIP
/
SPMSTUB.ASM
(
.txt
)
< prev
next >
Wrap
Assembly Source File
|
1994-06-29
|
2KB
|
90 lines
.386p
locals
_TEXT segment byte public use32 'CODE'
_TEXT ends
_DATA segment dword public use32 'DATA'
_DATA ends
_BSS segment dword public use32 'BSS'
_BSS ends
DGROUP group _DATA, _BSS
assume cs:_TEXT, ds:DGROUP
extrn _code_data:dword
extrn _pmstacktop:dword
extrn _pmstacklen:dword
public SETPMSTUB
_TEXT segment byte public use32 'CODE'
assume cs:_TEXT, ds:DGROUP
SETPMSTUB:
push esi edi
cld
mov edi,[esp+4+8+04h]
mov esi,offset pmirqstub
mov ecx,PMIRQSTUBLEN / 4
rep movsd
mov cl,PMIRQSTUBLEN and 3
rep movsb
mov eax,[esp+4+8+00h]
sub eax,_code_data
sub eax,edi
add eax,PMIRQSTUBLEN-PMIRQSTUBM1OFF-4
mov [edi-PMIRQSTUBLEN+PMIRQSTUBM1OFF],eax
mov [edi-PMIRQSTUBLEN+PMIRQSTUBM0OFF-2],ds
pop edi esi
ret 08h
_TEXT ends
_DATA segment dword public use32 'DATA'
assume cs:_DATA, ds:DGROUP
pmirqstub:
push eax ebx ecx edx
push ds es fs gs
cld
mov cx,2beah
PMIRQSTUBM0OFF = $ - pmirqstub
mov ds,cx
mov es,cx
mov eax,_pmstacktop
mov edx,eax
sub edx,_pmstacklen
mov _pmstacktop,edx
mov dx,ss
mov ss,cx
xchg esp,eax
push eax edx
db 0e8h
PMIRQSTUBM1OFF = $ - pmirqstub
dd 2beaddedh
pop edx eax
mov ss,dx
mov esp,eax
mov eax,_pmstacklen
add _pmstacktop,eax
pop gs fs es ds
pop edx ecx ebx eax
sti
iretd
PMIRQSTUBLEN = $ - pmirqstub
_DATA ends
end