.386 CODE SEGMENT USE16 ASSUME CS:CODE,SS:STACK OLD_INT0 DW ?,?;原INT 16H的中断矢量 ;新的16号中断代码 NEW16H: PUSHF CMP AH,0H JZ CHULI CMP AH,10H JZ CHULI CALL DWORD PTR CS:OLD_INT0 JMP EEND CHULI: CALL DWORD PTR CS:OLD_INT0 CMP AL,'A' JZ INCA CMP AL,'B' JZ DECB JMP EEND EEND: IRET INCA: INC AL JMP EEND DECB: DEC AL JMP EEND ;主程序 BEGIN: MOV AX,0 MOV DS,AX MOV AX,3516H INT 21H MOV OLD_INT0,BX MOV OLD_INT0+2,ES MOV DX,OFFSET NEW16H CLI MOV WORD PTR DS:[16H*4],OFFSET NEW16H MOV DS:[16H*4+2],CS STI MOV DX,OFFSET BEGIN+15 SHR DX,4 ADD DX,10H MOV AL,0 MOV AH,31H INT 21H CODE ENDS STACK SEGMENT USE16 STACK DB 200 DUP(0) STACK ENDS END BEGIN