有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并将结果在显示器上显示。
DATAS SEGMENT
STRING0 DB 'data',0AH,0DH
STRING1 DB 'name',0AH,0DH
STRING2 DB 'time',0AH,0DH
STRING3 DB 'file',0AH,0DH
STRING4 DB 'code',0AH,0DH
STRING5 DB 'path',0AH,0DH
STRING6 DB 'user',0AH,0DH
STRING7 DB 'exit',0AH,0DH
STRING8 DB 'quit',0AH,0DH
STRING9 DB 'text','$'
BUF DB 5
DB ?
DB 5 DUP(?) ;此处输入数据段代码
DATAS ENDS
EXTRA SEGMENT
STRING DB 7 DUP(?) ;此处输入堆栈段代码
EXTRA ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:EXTRA
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,EXTRA
MOV ES,AX
LEA DX,BUF
MOV AH,0AH
INT 21H
LEA SI,BUF+2
LEA DI,STRING
MOV CX,4
REP MOVSB
LEA SI,STRING0
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING1
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING2
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING3
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING4
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING5
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING6
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING7
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING8
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
LEA SI,STRING9
LEA DI,STRING
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE TIHUAN
JMP SHUCHU
TIHUAN:
SUB SI,4
MOV AL,'d'
MOV [SI],AL
MOV AL,'i'
MOV [SI+1],AL
MOV AL,'s'
MOV [SI+2],AL
MOV AL,'k'
MOV [SI+3],AL
SHUCHU:
LEA DX,STRING0
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START ;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
比如输入user时的结果:
输入abcd时的结果:
有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。
DATAS SEGMENT
STR0 DB 'ram',0AH,0DH
STR1 DB 'yes',0AH,0DH
STR2 DB 'red',0AH,0DH
STR3 DB 'the',0AH,0DH
STR4 DB 'get',0AH,0DH
STR5 DB 'for',0AH,0DH
STR6 DB 'and',0AH,0DH
STR7 DB 'key',0AH,0DH
STR8 DB 'not',0AH,0DH
STR9 DB 'may$'
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
SAVE DB 100 DUP(?) ;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
XOR AX,AX
MOV CX,9
LEA DI,STR0
LEA SI,STR1
AGAIN:
PUSH CX
PUSH SI
PUSH DI
BIJIAO:
MOV AL,[DI]
CMP AL,[SI]
JE BIJIAO1
CMP AL,[SI]
JB JIXU
JMP JIAOHUAN
BIJIAO1:
MOV AL,[DI+1]
CMP AL,[SI+1]
JE BIJIAO2
CMP AL,[SI]
JB JIXU
JMP JIAOHUAN
BIJIAO2:
MOV AL,[DI+2]
CMP AL,[SI+2]
JA JIAOHUAN
JMP JIXU
JIXU:
ADD SI,5
ADD DI,5
LOOP BIJIAO
POP DI
POP SI
POP CX
LOOP AGAIN
JMP OUTPUT
JIAOHUAN:
MOV AL,[SI]
MOV BL,[DI]
MOV [SI],BL
MOV [DI],AL
MOV AL,[SI+1]
MOV BL,[DI+1]
MOV [SI+1],BL
MOV [DI+1],AL
MOV AL,[SI+2]
MOV BL,[DI+2]
MOV [SI+2],BL
MOV [DI+2],AL
JMP JIXU
OUTPUT:
LEA DX,STR0
MOV AH,09H
INT 21H
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果图示例:
有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除, 并在显示器上显示。
DATAS SEGMENT
STR0 DB 'data',0AH,0DH
STR1 DB 'name',0AH,0DH
STR2 DB 'time',0AH,0DH
STR3 DB 'file',0AH,0DH
STR4 DB 'code',0AH,0DH
STR5 DB 'path',0AH,0DH
STR6 DB 'user',0AH,0DH
STR7 DB 'exit',0AH,0DH
STR8 DB 'quit',0AH,0DH
STR9 DB 'text',0AH,0DH,'$'
LEN EQU $-STR0
BUF DB 6
JISHU DB 00H
DB ?
DB 5 DUP(?) ;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
STRING DB 7 DUP(?);此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV ES,AX
SHURU:
LEA DX,BUF
MOV AH,0AH
INT 21H
LEA DI,STRING
LEA SI,BUF[2]
MOV CX,4
REP MOVSB
LEA DI,STRING
LEA SI,STR0
CLD
MOV CX,4
;JMP JIAOHUAN
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR1
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR2
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR3
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR4
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR5
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR6
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR7
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR8
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
LEA DI,STRING
LEA SI,STR9
CLD
MOV CX,4
REPE CMPSB
CMP CX,0
JE YIDONG
INC JISHU
JMP SHUCHU
YIDONG:
MOV AL,JISHU
XOR AH,AH
MOV BL,04H
MUL BL
MOV BL,AL
MOV BX,SI
MOV AX,LEN
SUB AL,BL
MOV CL,AL
DEC SI
DEC SI
DEC SI
DEC SI
JIAOHUAN:
MOV AX,[SI+6]
MOV [SI],AX
INC SI
DEC CX
CMP CX,0
JNE JIAOHUAN
SHUCHU:
LEA DX,STR0
MOV AH,09H
INT 21H
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
比如输入user后的结果:
有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序, 并在显示器上显示。
参考上述几个例子结合一下即可。