• 汇编语言-字母字符转换


    1. 题目:大小写字母字符互换

    2. 要求:从键盘输入一个字符,如果该字符是回车符,直接退出程序,如果是小写字母,则转换为大写字母并显示;如果是大写字母,则转换为小写字母并显示;如果是非字母字符,则显示提示信息,并等待用户重新输入字符。

    3. 提示: 首先判断是否是回车符,如果不是,则判断是否是大写字母或小写字母,如果是进行转换并输出,否则显示重新输入。大写字母ASCII码与小写字母ASCII之间相差20H,可以根据这个进行转换。

    复制代码
     1 ; Example assembly language program -- 
     2 ; Author:  karllen
     3 ; Date:    revised 5/2014
     4 
     5 .386
     6 .MODEL FLAT
     7 
     8 ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD
     9 
    10 INCLUDE io.h            ; header file for input/output
    11 
    12 cr      EQU     0dh     ; carriage return character
    13 Lf      EQU     0ah     ; line feed
    14 
    15 .STACK  4096            ; reserve 4096-byte stack
    16 
    17 .DATA
    18       promot      BYTE "Enter a char of letter ",cr,Lf,0
    19       warning     BYTE "The char isn't a letter,enter again ",0
    20       
    21       answerLtoU  BYTE "The char is a lowercase,it's uppercase is "
    22                   BYTE cr,Lf,0
    23       answerUtoL  BYTE "The char is a uppercase,it's lowercase is "
    24                   BYTE cr,Lf,0
    25       char        BYTE 1 DUP(?)
    26 .CODE
    27 _start:
    28       output   promot
    29       input char,1
    30       doGo:
    31         mov bl,char
    32         input char,1
    33         cmp char,0dh
    34         je  doWhCMP     ;cr deal the cr
    35       jmp doGo
    36       doWhCMP:
    37               
    38              cmp bl,41h
    39              jl  inputAgain   ;the char < A,end and input again
    40              cmp bl,5Ah
    41              jle endUppertoL ;the char <= Z,so to judge it is or not lowercase
    42                              ;the char is a uppercase
    43        cmpLower:
    44              cmp bl,61h     ;the char < a,end and input again
    45              jl  inputAgain
    46              cmp bl,7Ah     ;the char > z.end and input agian
    47              jg  inputAgain
    48              jmp endLowertoU ;the char is a lowercase
    49                    
    50        inputAgain:
    51              output warning 
    52              input  char,1
    53              mov    bl,char
    54              jmp    doGo
    55        endUppertoL:
    56              mov    al,bl
    57              add    al,32             ;这里是十进制加减
    58              mov    char,al
    59              output answerUtoL
    60              output char
    61              jmp    endMain
    62        endLowertoU:
    63              mov    al,bl
    64              sub    al,32
    65              mov    char,al
    66              output answerLtoU
    67              output char
    68        endMain:
    69                        
    70               INVOKE  ExitProcess, 0  ; exit with return code 0
    71 
    72 PUBLIC _start                   ; make entry point public
    73 
    74 END                             ; end of source code
    复制代码
  • 相关阅读:
    day 21 01 序列化模块和模块的导入的复习以及包的初识
    day 20 02 模块的导入
    Shell从入门到精通进阶之三:表达式与运算符
    Shell从入门到精通进阶之二:Shell字符串处理之${}
    shell从入门到精通进阶之一:Shell基础知识
    容器平台自动化CI/CD流水线实践之一:环境概述
    什么是DevOps?
    kubernetes进阶之七:Service
    kubernetes进阶之六:StatefulSet & DaemonSet
    kubernetes进阶之五:Replication Controller&Replica Sets&Deployments
  • 原文地址:https://www.cnblogs.com/xieyulin/p/7056432.html
Copyright © 2020-2023  润新知