📄 exp96.asm
字号:
CODE SEGMENT PARA
ASSUME CS:CODE,DS:CODE
NEW_INT1C PROC FAR
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH BP
PUSH DS
PUSH ES
STI
JMP START
OLD_INT1C DD ?
STRING1 DB 'In Second INT 1Ch!',00H
COUNT DW ?
START: PUSH CS
POP DS
PUSHF
CALL CS:OLD_INT1C
INC COUNT
CMP COUNT,18
JB RETURN
MOV COUNT,0
;MOV DX,OFFSET STRING1
;MOV AH,9
;INT 21H
;MOV DL,'1'
; MOV AH,2
; INT 21H
CLD
LEA SI,STRING1
MOV DH,5 ;not 4
MOV DL,30
LP1: LODSB
CMP AL,0
JZ RETURN
PUSH AX
MOV BH,0
MOV AH,2
INT 10H
POP AX
PUSH DX
MOV BH,0
MOV BL,8FH
MOV AH,9
MOV CX,1
INT 10H
POP DX
INC DL
JMP SHORT LP1
RETURN: CLI
POP ES
POP DS
POP BP
POP DI
POP SI
POP DX
POP CX
POP BX
POP AX
IRET
NEW_INT1C ENDP
H_LEN EQU $-NEW_INT1C
MAIN PROC FAR
MOV AX,CS
MOV DS,AX
MOV COUNT,0
MOV AH,35H
MOV AL,1CH ;GET INT 1Ch ADDR
INT 21H
MOV WORD PTR OLD_INT1C,BX
MOV WORD PTR OLD_INT1C+2,ES
MOV AH,25H
MOV AL,1CH
MOV DX,OFFSET NEW_INT1C ;DS=CS
INT 21H
MOV DX,(H_LEN+15)/16+10H
MOV AX,3100H
INT 21H
MAIN ENDP
CODE ENDS
END MAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -