⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 字母转换.asm

📁 实现字母大小写转换
💻 ASM
字号:
DATAS SEGMENT
	;>>>>>>>>>>>>>>>>>>
	MAXNUM	EQU	10
	BUF		DB	MAXNUM+1
	COUNT	DB	0
	INPUT	DB	MAXNUM+1 DUP(0)
	OUTPUT	DB	MAXNUM DUP(0),'$'
	PROMPT	DB	'PLEASE INPUT:','$'
	SHOW	DB	13,10,10,'THEN CHANGES:','$'
    ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
	DB	256 DUP(0)
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
	;>>>>>>>>>>>>>>>>>>
	LEA	DX,PROMPT
	MOV AH,9
	INT 21H
	;>>>>>>>>>>>>>>>>>>
	LEA DX,BUF
	MOV AH,0AH
	INT 21H
	;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>
	MOV CX,MAXNUM
	MOV SI,0
	;>>>>>>>>>>>>>>>>>>;判断所输入的是否为字母
INTEXT:
	MOV AL,INPUT[SI]	
	CMP AL,7BH
	JS TESTTWO	;ASCII码小于7BH,转二测试.
ERROR:	
	MOV OUTPUT[SI],20H	;出错,以空格显示.
	JMP NEXT
TESTTWO:
	CMP AL,61H
	JS	TESTTHREE	;ASCII码小于61H,转三测试.
	JMP	SUBC	;ASCII码小于7BH,大于61H,则转正确的转换(为小写字母).
TESTTHREE:	
	CMP AL,5BH
	JS	TESTFOUR;ASCII码小于5BH,转四测试.
	JMP	ERROR	;ASCII码小于61H又大于5BH.
TESTFOUR:
	CMP AL,41H
	JS	ERROR	;ASCII码小于41H.
	;ASCII码小于5BH,大于41H,则为大写字母的转换
;>>>>>>>>>>>>>>>>>>;ADD	
	ADD	AL,20H
	MOV OUTPUT[SI],AL
	JMP	NEXT
;>>>>>>>>>>>>>>>>>>;SUB
	SUBC:
	SUB AL,20H
	MOV OUTPUT[SI],AL
;>>>>>>>>>>>>>>>>>>
	NEXT:	
	INC SI
	LOOP INTEXT
;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>;>>>>>>>>>>>>>>>>>>
	LEA DX,SHOW
	MOV AH,9
	INT 21H
	LEA DX,OUTPUT
	MOV AH,9
	INT 21H
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -