zoukankan      html  css  js  c++  java
  • 使用汇编语言将输入的字符串大写转换为小写

     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
  • 相关阅读:
    Python 字典方法(.get .item)
    Python格式化输出
    R sprintf函数
    r 中sub() gsub()等匹配与替换函数
    R read.csv数据框
    C#中使用ref、out、params例子
    C#中的三种委托方式:Func委托,Action委托,Predicate委托
    tfs强制撤销解锁命令
    Json序列化与反序列化
    XPath语法在C#中使用XPath示例第二讲
  • 原文地址:https://www.cnblogs.com/roseAT/p/10239809.html
Copyright © 2011-2022 走看看