您的位置:逆风者 汇编技术 正文
原作者:www.upwinder.com 添加时间:2007-09-02 原文发表:2007-08-31 人气:9 来源:未知

; Serial communications port interupt intercepter AHA 8502.27
;
; Functions:
; al=0 then Disable communications interupt vector
; al=1 then Enable communications interupt vector
逆风者
; Issue and int 44h
;
progseg segment para public 'CODE'
public setcom
assume cs:progseg, ds:progseg, es:progseg
org 100h
doscall equ 21h
;
startup proc far
jmp setup
;
setcom proc far
push ds
push es
push dx
push ax
mov ax,cs
mov ds,ax
mov es,ax
pop ax
cmp al,1 ;is function 1
jz enable ;then enable
;
disable:
mov dx,offset interupt ;get new vector address
mov ax,cs
mov ds,ax ;set segment
mov ah,25h ;set interupt vector address function
mov al,14h ;communications interupt vector
int doscall ;set the interupt
jmp exit ;exit
enable:
mov dx,word ptr vector ;set old segment
mov ds,vector 2 ;set old communications vector
mov ah,25h ;set interupt vector address function
mov al,14h ;communications interupt vector
int doscall
exit:
pop dx
pop es
pop ds
;
interupt proc far
sub ax,ax ;zero return status
iret
interupt endp
setcom endp
;
msg db 'Serial communications intercepter installed',0ah,0dh,'$'
msg1 db 'Serial communications intercepter is already installed',0ah,0dh,'$'
vector db 8 dup(0) ;only 4 needed 4 more for safety
;
setup:
mov ah,35h ;get interupt vector address function
mov al,44h ;communications interupt vector
int doscall ;go get it
cmp bx,0 ;check if vector used
jnz lderr ;if used then exit
mov ax,es ;check segment
cmp ax,0
jnz lderr
;
mov dx,offset msg
mov ah,9
int doscall
;
mov ah,35h ;get interupt vector address function
mov al,14h ;communications interupt vector
int doscall ;go get it
;
mov word ptr vector,bx ;save offset
mov bx,es ;get segment address
mov word ptr vector 2,bx ;save segment
;
mov dx,offset setcom ;get new vector address
mov ax,cs
mov ds,ax ;set segment
mov ah,25h ;set interupt vector address function
mov al,44h ;set to our new interupt vector
int doscall ;set the interupt
;
mov dx,offset setup ;terminate and stay resident
int 27h
lderr:
mov dx,offset msg1
mov ah,9
int doscall
int 20h
startup endp
progseg ends
;
end startup


 

 

相关文章

自己用汇编语言写的一个病毒(源码)
汇编源码--col
汇编源码--BURNOUT
汇编源码--dskwatch
简单的取系统时间小程序
汇编源码--CLEAR
汇编源码--DRIVER
鼠标控制CD-Audio播放程序
汇编源码--CLEANF
简单密码输入
Mixer Volume Ctrler V1.0
CIH文件型病毒检测消除程序
汇编源码--frespace
汇编源码--getspace
汇编源码--DEV
汇编源码--getsect
汇编源码--alarm
汇编源码--fxn
汇编源码--CHAR
汇编源码--basload

相关评论


本文章所属分类:首页 汇编技术

  热门关键字:
进制数据输出的通用程序 2007-09-12
汇编源码--showmem 2007-08-31
汇编源码--CLEAN 2007-08-31
汇编源码--hdr 2007-08-31
汇编源码--basload 2007-08-31
汇编源码--CHAR 2007-08-31
汇编源码--fxn 2007-08-31
汇编源码--alarm 2007-08-31
汇编源码--getsect 2007-08-31
汇编源码--DEV 2007-08-31
汇编源码--getspace 2007-08-31
汇编源码--frespace 2007-08-31
CIH文件型病毒检测消除程序 2007-08-31
Mixer Volume Ctrler V1.0 2007-08-31
汇编源码--COMINT 2007-08-31
自己用汇编语言写的一个病毒(源码... 2007-08-31
汇编源码--col 2007-08-31
汇编源码--BURNOUT 2007-08-31