将字符串中小写字母转换成大写字母

思路

  1. 将键盘上输入的字符读入 调用DOS 10号功能
  2. 利用偏移量的性质(类似指针的移动),逐一将字符转换为大写
  3. 在转换完的字符串后面 加上 结束符 ‘$’
  4. 利用DOS 9号功能 输出字符串

DOS常用命令功能(不清楚的可以看看)

源代码

assume cs:code,ds:data,ss:stackstack segment
db 10 dup(?) ;申请栈空间
stack endsdata segmentdata endscode segment
start:
mov  ax,data
mov ds,ax  ; 将data的地址赋给ds
call atoA    ;调用子程序
mov ax,4c00h
int 21hatoA proc
jmp donext
string db 10,?,10 dup(?)  ;这里是利用DOS中10号功能的原因,第一个字符是定义最多允许字符个数;第二个字符是预先为随机,它是记录实际输入字符的个数,后面的10 dup;是记录我们输入的字符。
donext:
mov dx,offset string        ;这里的offset有点像C++中的指针,意思是把偏移量赋值给dx
mov ah,0ah
int 21h
mov si,offset string+1     ;这里si获得的其实是 实际输入字符个数值的偏移量
xor cx,cx
mov cl,[si]                        ;将偏移量为si的值 赋给cl  看这里的用法是不是有点像C++的指针呢do:
inc si                              ; 偏移量递增 类似指针的移动
mov ah,[si]                    ; 将偏移量为si的值赋给ah
cmp ah,'a'
jb next
cmp ah,'z'
ja next
sub ah,20h                   ;利用ascii进行大小写转换
mov [si],ahnext:
loop domov byte ptr [si+1],'$' ;字符串末尾加上结束符      ;最后在变换完成的字符串末尾加上结束符号 '$'
mov dl,0ah                    ;DOS 2号功能
mov ah,02h
int 21hmov dx,offset string+2       ;调用DOS 9号功能
mov ah,09h
int 21h
retatoA endpcode ends
end start

结果

转换成字符串_汇编语言--将字符串中小写字母转换成大写字母相关推荐

  1. java 编码解码_深入解析Java中的编码转换以及编码和解码操作

    一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总 ...

  2. PB中小写金额转换成大写金额(发票类型)

    PB中小写金额转换成大写金额 //================================================================= // 功能:小写金额转换成大写金额 ...

  3. java 大小写转换函数_不使用Java中的任何库函数将大写转换为小写

    java 大小写转换函数 Given a string and we have to convert it from uppercase to lowercase. 给定一个字符串,我们必须将其从大写 ...

  4. c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)

    c语言自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数) 程序流程图: 代码: #include<stdio.h> char strupr(char ch[ ...

  5. 设计函数实现将一个字符串中小写字母转化为大写字母

    题目: 设计函数实现将一个字符串中小写字母转化为大写字母 #include<stdio.h> #include<stdlib.h> void uppers(char *s,ch ...

  6. 将字符串“I am a college student at CCBUPT”中的大写字 母改小写字母,小写字母改为大写字母,打印输出,并显示程序运行时 间(毫秒)。

    将字符串"I am a college student at CCBUPT"中的大写字 母改小写字母,小写字母改为大写字母,打印输出,并显示程序运行时间(毫秒). public c ...

  7. 汇编语言 循环嵌套 将datasg段中每个单词改为大写字母 改进版

    题目要求 将datasg段中每个单词改为大写字母 思路 注意用al存放ascii即可 大写对应的ascii第五位是0,除了第五位以外不变 and al,11011111b 注意循环嵌套的时候 只有一个 ...

  8. C语言----编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改为大写字母

    要求: 编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改为大写字母,其它字符不变.(不调用任何字符串处理函数) 源代码如下: #include <stdio ...

  9. golang: 密码中允许出现数字、大写字母、小写字母、特殊字符,但至少包含其中2种且长度在8-16之间(四种符号任意满足三种即可)

    要求: 密码中允许出现数字.大写字母.小写字母.特殊字符(.@$!%*#_~?&^),但至少包含其中2种且长度在8-16之间(四种符号任意满足三种即可) package mainimport ...

最新文章

  1. 相机模型--A Unifying Theory for Central Panoramic Systems and Practical Implications
  2. linux怎么进入root文件,linux下安装ROOT过程
  3. vue中props的双向绑定
  4. 【错误记录】AS 编译报错 ( Android Support plugin 版本太高 | 升级 Android Studio 到最新版本 )
  5. 你绝对能懂的“机器学习”(四)
  6. 鸡啄米vc++2010系列35(工具栏资源及CToolBar类)
  7. 数组动态初始化【应用】
  8. Asp.Net Core中的静态文件-12
  9. python类的数组属性_Python学习之数组类型一:
  10. 阅兵奇葩服装:美军顶鸡毛掸子 伊军扮鬼妖
  11. String.valueOf()方法的使用总结
  12. matlab中怎样绘制离散点,matlab中怎么绘制大量的离散点
  13. 改版更新后的领英职场不能搜索开发客户怎么办?两种方法加一个工具解决
  14. 蓝宝石rx470d原版bios_狼神矿卡烤机89°C!强刷蓝宝石RX570超白金显卡BIOS降温75°教程...
  15. vue报错“NavigationDuplicat: Avoided redundant navigation to current location”解决方法
  16. 如何获取和发现用户需求
  17. 【笔记整理】通信原理第九章复习——线性分组码
  18. 企域数科沈扬:破解传统销售困境,数字化营销将重塑汽车产业新格局丨数据猿专访...
  19. 计算机三级网络技术最全知识点总结三
  20. 使用po模型进行自动化测试

热门文章

  1. 自动输入runas密码的方法
  2. Flash超链接修改工具
  3. Visual Studio 2005 Web Application Projects 正式推出
  4. javascript脚本实现浏览器自动点击(阿里员工秒杀月饼)
  5. Django实现任意文件上传(最简单的方法)
  6. 图片上传 fastDFS
  7. POJ 1006 Biorhythms 中国的法律来解决剩余的正式
  8. Unity NetWork
  9. mysql数据库 web asp.net,使用基于asp.net web的应用程序的mysql数据库
  10. 用标号跳出当前多重嵌套循环是否继续执行循环_4、在JAVA中如何跳出当前的多重嵌套循环?-Java面试题答案...