• 使用汇编语言将输入的字符串大写转换为小写


     1 ;=====================
     2 ;字符串中大写变小写
     3 DATAS segment
     4 String db 10, ?, 10 dup(?) ;最多接收10个字符,最后的回车算一个字符
     5 DATAS ends
     6 
     7 CODES segment
     8 START:
     9     mov AX,DATAS
    10     mov DS,AX
    11     ;正式代码部分
    12 
    13     mov dx,offset String    
    14     mov ah,0ah              ;10号功能调用设置
    15     int 21h                 ;调用10号DOS中断,输入字符串
    16 
    17     mov si,offset String+1  ;获取记录输入字符个数内容的偏移地址
    18     xor cx,cx               ;cx清零 loop循环的次数由cx设置
    19     mov cl,[si]             ;设置循环次数将: DS:si中的内容取出来放入cl中
    20 lp:
    21     inc si                  ;si自增1
    22     mov al,[si]             ;把si地址中存放的数据传给al
    23     cmp al,'A'              ;字符比较
    24     jb next                 ;如果小于'A'则跳转到next:
    25     cmp al,'Z'
    26     ja next                 ;如果大于'Z'则跳转到next:
    27     add al,20h              ;在'A'~'Z'范围内,加20h变成小写
    28     mov [si],al             ;将内容重新存放进内存空间
    29 next:
    30     loop lp                 ;循环调用
    31     mov byte ptr [si+1],'$' ;字符串最后加个'$'便于用9号功能输出避免输出许多无关内容
    32     
    33     mov ah,2 
    34     mov dl,0ah
    35     int 21h        ;换行
    36     mov dl,0dh
    37     int 21h ;换行
    38     ;为什么+2?因为录入字符串的时候string 指向的内存地址空间依次存放的 0ah,录入的
    39     ;个数,录入的字符串
    40     mov dx,offset String+2  
    41     mov ah,9
    42     int 21h ;调用9号DOS中断,显示首地址为DS:DX的字符串
    43 
    44     mov al,0
    45     mov AH,4CH
    46     INT 21H
    47 CODES ends
    48     end START
  • 相关阅读:
    洛谷P3165 [CQOI2014]排序机械臂
    splay详解(一)
    存储过程解题
    使用zxing生成二维码
    Cognos 图表用图片取代”没有数据显示”
    哪些响应式布局框架是设计师使用的?
    A shallow summary of oracle log miner
    雅虎UED--无障碍网页设计
    smarty 截取字符串,调用php中的方法,foreach循环
    一个页面重构工程师眼中的“用户体验”
  • 原文地址:https://www.cnblogs.com/roseAT/p/10239809.html
Copyright © 2020-2023  润新知