主题:[讨论]求助啊!!!!!!!!!!!!急····
[em10]以下是我编的用来实现 DOS中TYPE和DIR功能程序,但在机器上无法通过!~高手改错!
TYPE实现:
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
FNAME DB '*.*',0
DATA ENDS
STACK SEGMENT
STACK DW 32DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
MOV DX,SEGD TABUF
MOV AH,1AH
INT 21H
MOV DX,OFFSET FNAME
MOV CX,0
MOV AH,4EH
INT 21H
JC EXIT
XXX: CRLF
MOV CX,0
MOV SL,OFFSET DTABUF+1EH
UUU: LODSB
OR AL,AL
JZ VVV
INC CX
JMP UUU
VVV: MOV DX,OFFSET DTABUF+1EH
MOV BX,1
MOV AH,40H
INT 21H
ZZZ: MOV AH,4FH
INT 21H
JNC XXX
EXIT: MOV AX,4C00H
INT 21H
CODE ENDS
END START
DIR实现:
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
DTABUF DB 128DUP(?)
FNAME DB '*.*',0
DATA ENDS
STACK SEGMENT
STA DW 32DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
MOV DX,SEG DTABUF
MOV DS,DX
MOV DX,OFFSET DTABUF
MOV AH,1AH
INT 21H
MOV DX,OFFSET FNAME
MOV CX,0
MOV AH,4EH
INT 21H
JC EXIT
XXX: CRLF
MOV CX,0
MOV SL,OFFSET DTABUF+1EH
UUU: LODSB
OR AL,AL
JZ VVV
INC CX
JMP UUU
VVV: MOV DX,OFFSET DTABUF+1EH
MOV BX,1
MOV AH,40H
INT 21H
ZZZ: MOV AH,4FH
INT 21H
JNC XXX
EXIT: MOV AX,4CH
INT 21H
CODE ENDS
END START
谁帮我改正!!!!!!!~谢谢啦!!!!!!!!
TYPE实现:
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
FNAME DB '*.*',0
DATA ENDS
STACK SEGMENT
STACK DW 32DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
MOV DX,SEGD TABUF
MOV AH,1AH
INT 21H
MOV DX,OFFSET FNAME
MOV CX,0
MOV AH,4EH
INT 21H
JC EXIT
XXX: CRLF
MOV CX,0
MOV SL,OFFSET DTABUF+1EH
UUU: LODSB
OR AL,AL
JZ VVV
INC CX
JMP UUU
VVV: MOV DX,OFFSET DTABUF+1EH
MOV BX,1
MOV AH,40H
INT 21H
ZZZ: MOV AH,4FH
INT 21H
JNC XXX
EXIT: MOV AX,4C00H
INT 21H
CODE ENDS
END START
DIR实现:
CRLF MACRO
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
ENDM
DATA SEGMENT
DTABUF DB 128DUP(?)
FNAME DB '*.*',0
DATA ENDS
STACK SEGMENT
STA DW 32DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
MOV DX,SEG DTABUF
MOV DS,DX
MOV DX,OFFSET DTABUF
MOV AH,1AH
INT 21H
MOV DX,OFFSET FNAME
MOV CX,0
MOV AH,4EH
INT 21H
JC EXIT
XXX: CRLF
MOV CX,0
MOV SL,OFFSET DTABUF+1EH
UUU: LODSB
OR AL,AL
JZ VVV
INC CX
JMP UUU
VVV: MOV DX,OFFSET DTABUF+1EH
MOV BX,1
MOV AH,40H
INT 21H
ZZZ: MOV AH,4FH
INT 21H
JNC XXX
EXIT: MOV AX,4CH
INT 21H
CODE ENDS
END START
谁帮我改正!!!!!!!~谢谢啦!!!!!!!!