4.現(xiàn)有一組字符串為data,name,time,file,code,path,user,exit,quit,text芯砸,請編寫程序從鍵盤輸入4個字符的字符串影暴,若存在將其刪除, 并在顯示器上顯示少办。
這道題有個小BUG,可能不太好解決
還是在捋一下這道題的思路
首先讀一個字符串到BUF2
把SI給BUF1,DI給BUF2
CL=4開始比較凤类,如果不相等檬果,就把SI一直挪到逗號那一位+1,然后開始打印
打印的時候要比較最后是逗號還是美元
最后要把CH-1坊秸,把DI重新給BUF2麸祷,
如果相等且CL=0,就說明找到了褒搔,進入CHANGE
在CHANGE中把SI往后挪阶牍,然后重新給DI賦值,返回比較星瘾。
DATAS SEGMENT
? ? BUF1 DB 'data,name,time,file,code,path,user,exit,quit,text','$'
? ? BUF2 DB 5
? ? DB ?
? ? DB 5 DUP(?)
DATAS ENDS
STACKS SEGMENT
? ? ;此處輸入堆棧段代碼
STACKS ENDS
CODES SEGMENT
? ? ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
? ? MOV AX,DATAS
? ? MOV DS,AX
? ? MOV ES,AX
? ? LEA DX,BUF2
? ? MOV AH,0AH
? ? INT 21H
? ? MOV DL,0AH
? ? MOV AH,02H
? ? INT 21H
? ? MOV DL,0DH
? ? MOV AH,02H
? ? INT 21H
? ? MOV CH,10
? ? MOV CL,4
? ? LEA SI,BUF1
? ? LEA DI,BUF2[2]
L:
CMP CH,0
JZ END0
CLD
NEXT:
CMPSB
JNZ TIAOZHUAN
DEC CL
CMP CL,0
JZ CHANGE
JMP NEXT
TIAOZHUAN:
CMP CL,0
JZ DAYIN
DEC CL
INC SI
JMP TIAOZHUAN
DAYIN:
MOV DL,[SI-5]
MOV AH,02H
INT 21H
MOV DL,[SI-4]
MOV AH,02H
INT 21H
MOV DL,[SI-3]
MOV AH,02H
INT 21H
MOV DL,[SI-2]
MOV AH,02H
INT 21H
;MOV DL,[SI-1]
;MOV AH,02H
;INT 21H
MOV BL,[SI-1]
CMP BL,'$'
JZ END0
MOV DL,[SI-1]
MOV AH,02H
INT 21H
LEA DI,BUF2[2]
MOV CL,4
DEC CH
JMP L
CHANGE:
INC SI
DEC CH
MOV CL,4
LEA DI,BUF2[2]
JMP L
END0:
? ? ;此處輸入代碼段代碼
? ? MOV AH,4CH
? ? INT 21H
CODES ENDS
? ? END START