;8086汇编语言
;从键盘输入一字符串,将其中所有小写字母转换为大写字母,其余字符不变,将结果在屏幕上输出.
DATA SEGMENT ;数据段
COUNT EQU 80 ;最多输入多少个字符(包括结尾标识$)
COUNT2 EQU COUNT-1
BUF DB COUNT DUP (0)
ONELINE DB 0DH,0AH,'$'
DATA ENDS
CODE SEGMENT ;代码段
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA BX,BUF
MOV SI,0
MOV DI,COUNT2
MOV CX,0
NEXT:
MOV AH,1 ;每次输入1个字符
INT 21H
CMP AL,0DH ;是否回车键
JZ DONE
CMP AL,'a'
*** TO_SAVE
CMP AL,'z'
JA TO_SAVE
SUB AL,20H ;小写字母转换为大写
TO_SAVE:
MOV [BX+SI],AL;存入字符
INC SI
INC CX
CMP CX,DI
JE DONE
JMP NEXT
DONE:
MOV BYTE PTR [BX+SI],'$' ;存入字符串的结尾标识
LEA DX,ONELINE
MOV AH,9
INT 21H
LEA DX,BUF ;显示整个字符串
MOV AH,9
INT 21H
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START