汇编编程示例:
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
ORG 100H
START:
JMP INSTALL
D1 DB 'OK, passed ...',0DH,0AH,24H
INSTALL:
XOR AX,AX
MOV ES,AX
MOV AX,ES:[046CH] ;系统时间计数
XOR WORD PTR _CODE,AX ;把 _CODE 处的指令加密
MOV AH,0FFH
IN AL,21H
XCHG AH,AL
OUT 21H,AL ;关掉中断,并保存原中断开关情况到 AH
MOV CX,100 ;这儿是延时语句,模拟其他程序的执行时间
LOP1:
PUSH CX
XOR CX,CX
LOP2:
LOOP LOP2
POP CX
LOOP LOP1
MOV BX,ES:[046CH] ;再把时间取回来解密
XOR WORD PTR _CODE,BX
XCHG AH,AL ;记得把中断复原
OUT 21H,AL
_CODE:
NOP
NOP
MOV AH,9
MOV DX,OFFSET D1
INT 21H
INT 20H
CODE ENDS
END START