一个关于汇编程序运行的问题
这几天编写了一个汇编程序,编译没错,第一次运行也成功,但当运行第二次时就出错(NTVDM CPU has encountered an illegal instruction ),而且当运行MASM EDIT等的指令时 就会卡住不动,这是什么问题呢?求解答!小弟不胜感激!
我的代码:
STA SEGMENT STACK
DW 40H DUP(?)
TOP LABEL WORD
STA ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STA,DS:CODE
;DATA
CSIP DD 0
SUCCESS DB 0AH,0DH,'SUCCESSFULLY!!!!!!!',24H
;DATA ENDS
MAIN PROC FAR
BEGIN:
MOV AX,STA
MOV SS,AX
LEA SP,TOP
PUSH CS
POP DS
MOV AH,35H
MOV AL,21H
INT 21H
MOV WORD PTR CSIP,BX
MOV WORD PTR CSIP+2,ES
PUSH CS
POP DS
MOV DX,OFFSET MYINT
MOV AH,25H
MOV AL,21H
INT 21H
MOV AH,0D1H
INT 21H
MOV AH,0D2H
INT 21H
MOV AH,0D3H
INT 21H
MOV AH,0D4H
INT 21H
MOV AH,0D5H
INT 21H
MOV AH,4CH
INT 21H
MAIN ENDP
;*******************************************
MYINT PROC NEAR
STI
;PUSHF
CMP AH,0D1H
JB L1
CMP AH,0D5H
JB L2
JE L2
L1:;POPF
CLI
JMP CS:CSIP
IRET
L2:PUSH BX
PUSH AX
PUSH DX
PUSH CX
PUSH SI
PUSH DI
PUSH DS
PUSH ES
LEA DX,SUCCESS
MOV AH,9
INT 21H
CLI
POP ES
POP DS
POP DI
POP SI
POP CX
POP DX
POP AX
POP BX
;POPF
IRET
MYINT ENDP
;******************************************
CODE ENDS
END MAIN