求一道汇编的题啊 急用
有一个50个字符的串试把其中小写字母改为大写字母,把数字改为”*“,其他字符不变分不多了就剩这点了望大神带带...
有一个50个字符的串试把其中小写字母改为大写字母,把数字改为”*“,其他字符不变 分不多了 就剩这点了 望大神带带
展开
1个回答
展开全部
;
;小写字母改为大写,数字改为*,其他字符不变
ASSUME CS:CODE, DS:DATA
;--------------------------------
DATA SEGMENT
CR_LF DB 13, 10
X1 DB 'LKScz33212xcsfeWERczxCXGsasHFF^%&%^@#@@232$'
X1_LEN EQU $ - X1
DATA ENDS
;--------------------------------
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
LEA DX, CR_LF
MOV AH, 9
INT 21H
MOV CX, X1_LEN - 1
MOV SI, 0
LP:
MOV AL, X1[SI]
CMP AL, '0'
JB NEXT
CMP AL, '9'
JBE SHU
CMP AL, 'a'
JB NEXT
CMP AL, 'z'
JA NEXT
SUB AL, 20H
JMP NEXT
SHU:
MOV AL, '*'
NEXT:
MOV X1[SI], AL
INC SI
LOOP LP
LEA DX, CR_LF
MOV AH, 9
INT 21H
;--------------------------------
EXIT:
MOV AX, 4C00H
INT 21H
;--------------------------------
CODE ENDS
END START
;--------------------------------
;小写字母改为大写,数字改为*,其他字符不变
ASSUME CS:CODE, DS:DATA
;--------------------------------
DATA SEGMENT
CR_LF DB 13, 10
X1 DB 'LKScz33212xcsfeWERczxCXGsasHFF^%&%^@#@@232$'
X1_LEN EQU $ - X1
DATA ENDS
;--------------------------------
CODE SEGMENT
START:
MOV AX, DATA
MOV DS, AX
LEA DX, CR_LF
MOV AH, 9
INT 21H
MOV CX, X1_LEN - 1
MOV SI, 0
LP:
MOV AL, X1[SI]
CMP AL, '0'
JB NEXT
CMP AL, '9'
JBE SHU
CMP AL, 'a'
JB NEXT
CMP AL, 'z'
JA NEXT
SUB AL, 20H
JMP NEXT
SHU:
MOV AL, '*'
NEXT:
MOV X1[SI], AL
INC SI
LOOP LP
LEA DX, CR_LF
MOV AH, 9
INT 21H
;--------------------------------
EXIT:
MOV AX, 4C00H
INT 21H
;--------------------------------
CODE ENDS
END START
;--------------------------------
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询