微机原理:输入小写字母返回大写字母

DATA SEGMENT
DISP DB 'please input a lower letter:      $'  ;输出please input a lower letter:    
DATA ENDS
STACK SEGMENT PARA STACK
             DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
           ASSUME CS:CODE,DS:DATA,SS:STACK
START:
           MOV AX,DATA
           MOV DS,AX     ;将数据段变量传入段寄存器
           LEA DX,DISP    ;lea为传送偏移地址到DX;输出disp
           MOV AH,09H  ;也可写为MOV AH,9
           INT 21H           ;输出字符串
          
           MOV AH,01H
           INT 21H           ;输入字符;若改为07H则不回显
           CMP AL,'R'      ;判断是否为R
           JE UPPER        ;若相等则跳转到upper
           SUB AX,20H   ;将输入的小写字母的ASCII值减小20H,因为输入的小写字母ASCII比要输出的大写字母多20H
           MOV DL,AL    ;DL中此时为要出的字母的ASCII码
           MOV AH,02H
           INT 21H         ;输出DL中的字符
UPPER:
           MOV AH,4CH
           INT 21H        ;退回到dos
CODE ENDS
        END START
          

你可能感兴趣的:(微机原理)