⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 5-2.asm

📁 将输入的大写字母转换成小写字母输出
💻 ASM
字号:
data  segment

m1     db  'To the top now!Please input the right letter!',0ah,0dh,'$'
m2     db  'To the end now!Please input the right letter!',0ah,0dh,'$'
m3     db  'Please input a letter:(input "#"  to exit)',0ah,0dh,'$'

temp   db  ?			;用于存储输入的字母
data  ends
code  segment
          assume  cs:code,ds:data
start:
             mov  ax, data
             mov  ds, ax

	     mov  dx,offset m3
	     mov  ah,9
	     int  21h		;提示输入字母
again:
             mov  ah,1
	     int  21h		;输入一个字母
	     	     
             cmp  al,'#'
	     jz   exit		;是“#”则跳出

	     cmp  al,'a'	;输入的字母是小写字母么?a=61h
	     jnb  next1
	     mov  dx,offset m1
	     mov  ah,9
	     int  21h
	     jmp  again

next1:	     cmp  al,'z'
             jb   out1
	     jmp  next2
	     
next2:	     mov  dx,offset m2
	     mov  ah,9
	     int  21h
	     jmp  again

out1:	     mov  temp,al	;将输入字母存于temp内
             mov  dl,0ah
	     mov  ah,2
	     int 21h
             mov  dl,0ah
	     mov  ah,2
	     int  21h		;换行
             mov  dl,0dh
	     mov  ah,2
	     int  21h		;换行
	        
             ;将显示前驱字母		
	     mov  al,temp
	     cmp  al,'a'		;判断是a.
	     jz   p1			;是,跳转
	     
	     sub  al,1			;将其ASC码减1输出
	     mov  dl,al	     
	     mov  ah,2
	     int  21h
	     
	 p1:  
	     ;输出输入字母                 
             mov  al,temp		;说明超出字母表
	     mov  dl,al	     
	     mov  ah,2
	     int  21h			
	     
	     ;将显示后继字母    
	     mov  al,temp
	     cmp  al, 'z'
	     jz   again
             add  al,1
	     mov  dl,al	     
	     mov  ah,2
	     int  21h	

	     mov  dl,0ah
	     mov  ah,2
	     int  21h		;换行
	     mov  dl,0dh
	     mov  ah,2
	     int  21h		;换行
	     jmp  again
            
exit:	     ;退出		
             mov  ah, 4ch
             int  21h
code  ends
          end   start 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -