小写转换大写
DATAS SEGMENT
;此处输入数据段代码
ORG 1000H;为调试方便将数据存于指定地址处
BUFFER DB 'hello ASM!tyi20151030'
STRLEN EQU $-BUFFER;计算字符串的长度
ORG 2000H;便于查看结果
OUTSTR DB STRLEN DUP(?);预留相同字符串存储空间
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV CX,STRLEN
MOV SI,0
LP1:MOV AL,[SI+BUFFER];取数据
CMP AL,61H
JB NEXT
CMP AL,7AH
JA NEXT
SUB AL,20H;若Al在[61H,7AH]范围内,则为小写字母,需减20H转换为大写字母
NEXT:MOV [SI+OUTSTR],AL;把AL的结果存到OUTSTR中
INC SI;改变指针,便于下一循环读取和存储数据
LOOP LP1
MOV AH,4CH
INT 21H
CODES ENDS
END START