转换成字符串_汇编语言--将字符串中小写字母转换成大写字母
将字符串中小写字母转换成大写字母
思路:
- 将键盘上输入的字符读入 调用DOS 10号功能
- 利用偏移量的性质(类似指针的移动),逐一将字符转换为大写
- 在转换完的字符串后面 加上 结束符 ‘$’
- 利用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
结果
转换成字符串_汇编语言--将字符串中小写字母转换成大写字母相关推荐
- java 编码解码_深入解析Java中的编码转换以及编码和解码操作
一.Java编码转换过程 我们总是用一个java类文件和用户进行最直接的交互(输入.输出),这些交互内容包含的文字可能会包含中文.无论这些java类是与数据库交互,还是与前端页面交互,他们的生命周期总 ...
- PB中小写金额转换成大写金额(发票类型)
PB中小写金额转换成大写金额 //================================================================= // 功能:小写金额转换成大写金额 ...
- java 大小写转换函数_不使用Java中的任何库函数将大写转换为小写
java 大小写转换函数 Given a string and we have to convert it from uppercase to lowercase. 给定一个字符串,我们必须将其从大写 ...
- c语言学习-自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数)
c语言自定义函数并调用将一个字符串中的小写字母改为大写字母(数组元素和数组名作函数参数) 程序流程图: 代码: #include<stdio.h> char strupr(char ch[ ...
- 设计函数实现将一个字符串中小写字母转化为大写字母
题目: 设计函数实现将一个字符串中小写字母转化为大写字母 #include<stdio.h> #include<stdlib.h> void uppers(char *s,ch ...
- 将字符串“I am a college student at CCBUPT”中的大写字 母改小写字母,小写字母改为大写字母,打印输出,并显示程序运行时 间(毫秒)。
将字符串"I am a college student at CCBUPT"中的大写字 母改小写字母,小写字母改为大写字母,打印输出,并显示程序运行时间(毫秒). public c ...
- 汇编语言 循环嵌套 将datasg段中每个单词改为大写字母 改进版
题目要求 将datasg段中每个单词改为大写字母 思路 注意用al存放ascii即可 大写对应的ascii第五位是0,除了第五位以外不变 and al,11011111b 注意循环嵌套的时候 只有一个 ...
- C语言----编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改为大写字母
要求: 编写程序:对从键盘任意输入的字符串,将其中所有的大写字母改为小写字母,而所有小写字母改为大写字母,其它字符不变.(不调用任何字符串处理函数) 源代码如下: #include <stdio ...
- golang: 密码中允许出现数字、大写字母、小写字母、特殊字符,但至少包含其中2种且长度在8-16之间(四种符号任意满足三种即可)
要求: 密码中允许出现数字.大写字母.小写字母.特殊字符(.@$!%*#_~?&^),但至少包含其中2种且长度在8-16之间(四种符号任意满足三种即可) package mainimport ...
最新文章
- 相机模型--A Unifying Theory for Central Panoramic Systems and Practical Implications
- linux怎么进入root文件,linux下安装ROOT过程
- vue中props的双向绑定
- 【错误记录】AS 编译报错 ( Android Support plugin 版本太高 | 升级 Android Studio 到最新版本 )
- 你绝对能懂的“机器学习”(四)
- 鸡啄米vc++2010系列35(工具栏资源及CToolBar类)
- 数组动态初始化【应用】
- Asp.Net Core中的静态文件-12
- python类的数组属性_Python学习之数组类型一:
- 阅兵奇葩服装:美军顶鸡毛掸子 伊军扮鬼妖
- String.valueOf()方法的使用总结
- matlab中怎样绘制离散点,matlab中怎么绘制大量的离散点
- 改版更新后的领英职场不能搜索开发客户怎么办?两种方法加一个工具解决
- 蓝宝石rx470d原版bios_狼神矿卡烤机89°C!强刷蓝宝石RX570超白金显卡BIOS降温75°教程...
- vue报错“NavigationDuplicat: Avoided redundant navigation to current location”解决方法
- 如何获取和发现用户需求
- 【笔记整理】通信原理第九章复习——线性分组码
- 企域数科沈扬:破解传统销售困境,数字化营销将重塑汽车产业新格局丨数据猿专访...
- 计算机三级网络技术最全知识点总结三
- 使用po模型进行自动化测试
热门文章
- 自动输入runas密码的方法
- Flash超链接修改工具
- Visual Studio 2005 Web Application Projects 正式推出
- javascript脚本实现浏览器自动点击(阿里员工秒杀月饼)
- Django实现任意文件上传(最简单的方法)
- 图片上传 fastDFS
- POJ 1006 Biorhythms 中国的法律来解决剩余的正式
- Unity NetWork
- mysql数据库 web asp.net,使用基于asp.net web的应用程序的mysql数据库
- 用标号跳出当前多重嵌套循环是否继续执行循环_4、在JAVA中如何跳出当前的多重嵌套循环?-Java面试题答案...