例10.17 利用PSP中的信息来终止当前程序的运行。

解:
DSEG SEGMENT
MSG DB "Hello$"
DSEG ENDS
CSEG SEGMENT 'CODE'
ASSUME CS:CSEG, DS:DSEG
MAIN PROC FAR
start: ;在装入内存时,DS存放的是PSP的段地址
PUSH DS
XOR AX, AX
PUSH AX ;当前堆栈内容为0和PSP的段地址
MOV AX, DSEG
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 9
INT 21H
RET
MAIN ENDP
CSEG ENDS
END start

10.17是早期利用PSP来终止程序的方法。子程序MAIN必须定义为FAR类型,其前三条语句是为用PSP的头二个字节来终止程序运行服务的,但现在通常用中断21H之功能4CH来终止程序的运行。 

关 闭