DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF1 MOV AH,0AH INT 21H MOV CX,0 MOV CL,BUF1[1] LEA SI,BUF1[2] LEA DI,BUF2[2] L: CMP BYTE PTR [SI],'A' JNE M MOV WORD PTR [DI],'CC' ADD DI,2 INC SI JMP N M: MOV AL,[SI] MOV [DI],AL INC DI INC SI N: LOOP L MOV BYTE PTR [DI],'$' LEA DX,BUF2 MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END
6. 请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。
DATA SEGMENT BUF1 DB 0FFH DB ? DB 0FFH DUP('?') BUF2 DB 0DH,0AH,0FDH DUP('?')
DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF1 MOV AH,0AH INT 21H MOV CX,0 MOV CL,BUF1[1] LEA SI,BUF1[2] LEA DI,BUF2[2] L: MOV AL,[SI] MOV [DI],AL CMP BYTE PTR [DI],'a' JNB M OR BYTE PTR [DI],00100000B M: INC DI INC SI N: LOOP L MOV BYTE PTR [DI],'$' LEA DX,BUF2 MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END
7. 请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。
DATA SEGMENT BUF1 DB 0FFH DB ? DB 0FFH DUP('?') BUF2 DB 0DH,0AH,0FDH DUP('?') DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START:
MOV AX,DATA MOV DS,AX LEA DX,BUF1 MOV AH,0AH INT 21H MOV CX,0
MOV CL,BUF1[1] LEA SI,BUF1[2] LEA DI,BUF2[2] L:
CMP BYTE PTR [SI],'A' JNB M
MOV AL,[SI] MOV [DI],AL INC SI INC DI JMP NEXT M:
CMP BYTE PTR [SI],'z' JNA N
MOV AL,[SI] MOV [DI],AL INC SI INC DI JMP NEXT N:
CMP BYTE PTR [SI],'a' JB H INC SI JMP NEXT H:
CMP BYTE PTR [SI],'Z' JA O INC SI JMP NEXT O:
MOV AL,[SI] MOV [DI],AL INC SI INC DI JMP NEXT NEXT:
LOOP L MOV BYTE PTR [DI],'$' LEA DX,BUF2 MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END
8. 现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk, 并在显示器上显示。
DATAS SEGMENT BUF DB 05H DB ?
DB 05H DUP('?') LIB DB 0DH,0AH,'data' DB 0DH,0AH,'name' DB 0DH,0AH,'time' DB 0DH,0AH,'file' DB 0DH,0AH,'code' DB 0DH,0AH,'path' DB 0DH,0AH,'user' DB 0DH,0AH,'exit' DB 0DH,0AH,'quit' DB 0DH,0AH,'text','$' REPLACE DB 'disk' DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:DATAS START:
MOV AX,DATAS MOV DS,AX MOV ES,AX LEA DX,BUF MOV AH,0AH INT 21H
LEA SI,BUF[2] LEA DI,LIB[2] MOV BX,DI MOV CX,10 L:
CLD PUSH CX MOV CX,4 REPZ CMPSB JNZ N POP CX MOV SI,BX
LEA DI,REPLACE MOV CX,4 M:
MOV AL,[DI] MOV [SI],AL INC DI INC SI LOOP M JMP EXIT N:
ADD BX,6 MOV DI,BX LEA SI,BUF[2] LOOP L EXIT:
LEA DX,LIB MOV AH,09H INT 21H
MOV AH,4CH INT 21H CODES ENDS END START
9. 现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。 DATA SEGMENT LIB DB 'ram',0DH,0AH DB 'yes',0DH,0AH DB 'red',0DH,0AH DB 'the',0DH,0AH DB 'get',0DH,0AH DB 'for',0DH,0AH DB 'and',0DH,0AH DB 'key',0DH,0AH DB 'not',0DH,0AH DB 'may',0DH,0AH,'$' DATA ENDS