ASSUME CS:code,SS:data
data SEGMENT
DB 128 DUP(0)
data ENDS
code SEGMENT
start:
MOV AX,data
MOV SS,AX
MOV SP,128
MOV AX,CS
MOV DS,AX
MOV SI,OFFSET int9
MOV AX,0
MOV ES,AX
MOV DI,204h
MOV CX,OFFSET end0-OFFSET int9
CLD
REP movsb
PUSH ES:[4*9]
POP ES:[200h]
PUSH ES:[4*9+2]
POP ES:[202h]
CLI
MOV WORD PTR ES:[4*9],204h
MOV WORD PTR ES:[4*9+2],0
STI
;(1)
;(2)
MOV AX,4c00h
INT 21h
int9:
PUSH AX
PUSH BX
PUSH CX
PUSH ES
PUSH DI
IN AL,60h
PUSHF
CALL dword PTR CS:[200h]
CMP AL,9eh
JNE OUT1
MOV BL,'A'
MOV CX,2000
MOV DI,0
s:
MOV AX,0b800h
MOV ES,AX
MOV ES:[DI],BL
ADD DI,2
LOOP s
OUT1:
POP DI
POP ES
POP CX
POP BX
POP AX
IRET
end0: NOP
code ENDS
END start
以上不能正确的显示程序结果
当在(1)和(2)之间加上
MOV CX,120
lp: MOV AH,0
INT 16h
LOOP lp
就可以正常运行了,为什么,
当没有加这个程序段的时候,可以在COMMAND上运行,但是却不能在CMD上运行 |