题目
已知在以BUF为首地址的字节存储区中,存放着一个以’$'作结束标志的字符串,试编写程序,在CRT上显示该字符串,并要求将小写字母以大写字母形式显示出来
代码如下
DATA SEGMENT
BUF DB 'sdkj*@claf$'
COUNT EQU $-BUF
MSG1 DB 0AH,0DH,'before the transformation:$'
MSG2 DB 0AH,0DH,'after the transformation:$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
MOV AX, DATA 初始化数据
MOV DS, AX
MOV BX,OFFSET BUF 将BUF的偏移地址给BX
MOV CL, COUNT 用CL保存字符串的长度
MOV DX,OFFSET MSG1 显示MSG1字符串
MOV AH,9
INT 21H
LEA DX,BUF 显示BUF里保存的原字符串
MOV AH,9
INT 21H
LP:
MOV AL,[BX] AL存放字符串的内容
CMP AL,61H 与小写字母a进行比较
JB X 如果该字符的ASC码小于a,则跳转至X
CMP AL,7AH 与小写字母z进行比较
JA X 如果该字符的ASC码大于z,则跳转至X
SUB AL,20H