home *** CD-ROM | disk | FTP | other *** search
- DOSSEG
- .MODEL large
- .STACK 100h
-
- PUBLIC p2message,p3message
-
- EXTRN p2:PROC,p3:PROC
-
- .CODE
- start:
- mov ax,dgroup
- mov ds,ax
- mov dx,offset message
- mov ah,9
- int 21h
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- call dword ptr [jmp_address]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,2
- mov si,1
- call dword ptr [bx+si+1]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,257
- mov si,1
- call dword ptr [bx+si+256]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,2
- mov di,1
- call dword ptr [bx+di+1]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,257
- mov di,1
- call dword ptr [bx+di+256]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,2
- call dword ptr [bx+2]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,257
- call dword ptr [bx+257]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov si,offset jmp_address
- sub si,2
- call dword ptr [si+2]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov si,offset jmp_address
- sub si,257
- call dword ptr [si+257]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov di,offset jmp_address
- sub di,2
- call dword ptr [di+2]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov di,offset jmp_address
- sub di,257
- call dword ptr [di+257]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,2
- mov si,2
- call dword ptr [bx+si]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- call dword ptr [bx]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov bx,offset jmp_address
- sub bx,2
- mov di,2
- call dword ptr [bx+di]
-
- mov ax,offset p3
- mov word ptr jmp_address,ax
- mov ax,seg p3
- mov word ptr jmp_address+2,ax
- mov si,offset jmp_address
- call dword ptr [si]
-
- mov ax,offset p2
- mov word ptr jmp_address,ax
- mov ax,seg p2
- mov word ptr jmp_address+2,ax
- mov di,offset jmp_address
- call dword ptr [di]
-
- mov ax,4c00h
- int 21h
-
- .DATA
- message db 13,10,"Hello from PRTEST.",13,10,'$'
- p2message db 13,10,"Hello from PTEST2.",13,10,'$'
- p3message db 13,10,"Hello from PTEST3.",13,10,'$'
- jmp_address dd 0
-
- END start