8088系统采用中断方式的程序结构

STACK SEGMENT  ' STACK '
      DW 100H DUP(?)
STACK ENDS
DATA  SEGMENT
INT_SEG DW ?                ;保存中断向量段地址
INT_OFF DW ?                ;保存中断向量偏移地址
DATA  ENDS
CODE  SEGMENT
      ASSUME CS:CODE ,DS:DATA ,SS:STACK
START PROC FAR
      PUSH DS
      XOR AX ,AX
      PUSH AX
      MOV AX ,DATA
      MOV DS ,AX
      MOV AL ,n             ;指定类型号为n
      MOV AH ,35H
      INT 21H                ;取中断向量送到ES:BX
      MOV INT_SEG ,ES
      MOV INT_OFF ,BX       ;保护ES:BX
      CLI                    ;设置中断向量必须关中断
      MOV AL ,n
      MOV AH ,25H           ;重新设置n
      MOV DX ,SEG INTP
      MOV DS ,DX
      MOV DX OFFSET INTP     ;将INTP设置在n上
      INT 21H
      STI                    ;设置完毕后打开中断
      ……                   ;主体程序
      CLI                    ;恢复中断向量前必须关中断
      MOV AL ,n
      MOV AH ,25H
      MOV DX ,INT_SEG
      MOV DS ,DX
      MOV DX ,INT_OFF
      INT 21H                ;恢复原中断向量
      RET
START ENDP