汇编设计,输入一个小写字母,输出前置字母,它本身和后置字母

DATAS  SEGMENT
     str1 DB "Please input a char:",13,10,"$"
     str2 DB "The result is:$"
     A DB "0"
     B DB "0"
     input DB '0'
DATAS  ENDS

CODES  SEGMENT
     ASSUME    CS:CODES,DS:DATAS
     
START:

     MOV  AX,DATAS
     MOV  DS,AX  
L:   LEA  DX,str1 ;输出str1
     MOV  AH,9
     INT  21H
     MOV AH,1;输入
     INT 21H
     MOV input,AL
       
     CMP input,'a' ;判断是不是小写,不是则重新输入
     JL L
     CMP input,'z' 
     JG L
         
     MOV DX,13;换行
     MOV AH,2
     INT 21H
     MOV DX,10
     MOV AH,2
     INT 21H
     
     MOV AL,input
     SUB AL,01H ;前置字母
     MOV A,AL   
     ADD AL,02H ;后置字母
     MOV B,AL
                    
     CMP input,'a';判断是不是a
     JNE L1		  ;不是就判断是不是z
     MOV A,'z'	  ;是就将前置字母换为z
     MOV B,'b'    ;后置字母换为b
     JMP L2
     
L1:  CMP input,'z';判断是不是z
     JNE L2		  ;不是就输出结果
     MOV A,'y'    ;是就将前置字母换为y
     MOV B,'a'    ;将后置字母换为a
     JMP L2
	 ;L2输出结果
L2:  LEA  DX,str2 	;输出str2
     MOV  AH,9
     INT  21H 
	 MOV DL,A 		;输出前置字母
     MOV AH,02H
     INT 21H
     MOV DL,input   ;输出本身
     MOV AH,02H
     INT 21H
     MOV DL,B   	;输出后置字母
     MOV AH,02H
     INT 21H
     MOV DX,13;换行
     MOV AH,2
     INT 21H
     MOV DX,10
     MOV AH,2
     INT 21H
          
     
     MOV  AH,4CH
     INT  21H
CODES  ENDS
    END   START

汇编真的很傻,很难,但是很考验逻辑思维

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值