编程语言
首页 > 编程语言> > 汇编——大写变小写

汇编——大写变小写

作者:互联网

;从键盘输入任意一串小写字符(字符个数可变),
;将输入的小写字符转换为相应的大写字符,并在显示器上显示输出。

;从键盘输入任意一串小写字符(字符个数可变),
;将输入的小写字符转换为相应的大写字符,并在显示器上显示输出。
DATAS SEGMENT
    ;此处输入数据段代码  
    INPUTSET DB 'PLEASE ENTER A STRING OF LOWERCASE LETTERS $'
    STRING DB 30H 
    DB 0 
    DB 30H DUP('$')
    
    COUNT EQU $-STRING
    TIP DB 'THERE ARE ILLEGAL LETTERS! $'
    ;OUTLETTER  DB COUNT
   
DATAS ENDS

STACKS SEGMENT
    DW 20H DUP(0);此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX
    ;此处输入代码段代码
    
    ;初始化
  
  FIRST: 
  	;MOV AX,0
  	;MOV STRING,AL
  	MOV DX,OFFSET INPUTSET
    MOV AH,09H
    INT 21H
    
    MOV DL,0AH;回车
    MOV AH,2
    INT 21H
    MOV DL,0DH
    MOV AH,2
    INT 21H
    
    ;输入字符串
    LEA DX,STRING
    MOV AH,0AH
    INT 21H
 
    MOV CL,STRING+1
    MOV SI,2
    
   MOV DL,0AH;回车
   MOV AH,02H
   INT 21H
   MOV DL,0DH
   MOV AH,2
   INT 21H
    
   
    
    
    ;小写变大写
    NEXT:MOV AL,STRING[SI]
     ;小写字符串判断
    CMP AL,'a'
    JB ERROTIP
    
    CMP AL,'z'
    JA ERROTIP
    
     SUB AL,20H
   
    MOV STRING[SI],AL;存得到的大写字母
    
    INC SI
    LOOP NEXT
    MOV STRING[SI],'$'
    
    MOV DX,OFFSET STRING
    ADD DX,2
    MOV AH,09H
    INT 21H
    
     MOV DL,0AH;回车
   	MOV AH,02H
   	INT 21H
   	MOV DL,0DH
   	MOV AH,2
   	INT 21H
   	
    JMP EXIT
    
    
    
     
    ERROTIP:
    MOV DX,OFFSET TIP
    MOV AH,09H
    INT 21H
    
     MOV DL,0AH;回车
   	MOV AH,02H
   	INT 21H
   	MOV DL,0DH
  	 MOV AH,2
   INT 21H
    
    JMP FIRST
   
     EXIT:
     MOV AH,4CH
   	 INT 21H
CODES ENDS
    END START

标签:汇编,DL,变小,INT,AH,MOV,大写,21H,STRING
来源: https://blog.csdn.net/qq_46727366/article/details/116140146