1、 从键盘输入一个字符串(不超过255个),将其中的小写字母转换成大写字母,然后按原来的顺序在屏幕上显示。
时间:2010-11-24
来源:互联网
.model small
.stack
.data
buffer db 255 ;定义缓冲区,第1字节填入可能输入的最大字符数
db 0 ;第2个字节将用于存放实际输入的字符数
db 255 dup(0) ;第3字节开始用于存放输入的字符串
.code
.startup
mov dx,seg buffer ;操作符seg取得buffer的段地址
mov ds,dx ;设置数据段ds
mov dx,offset buffer ;提供入口参数:dx?字符串的偏移地址
mov ah,0ah
int 21h ;一个字符串的输入
mov si,offset buffer ;汇编操作符offset指示buffer的偏移地址
mov di,offset buffer
inc si
inc si
again:
lodsb ;串读取
cmp al,24h ;比较al,24h $
jz jieshu ;如果相等,jieshu
cmp al,60h ;比较al,60h <a
jb display ;如果低于,display
sub al,20h ;al?al-20 大小写转换
display:
mov ah,02h
mov dl,al
int 21h ;一个字符的输出
loop again ;循环again
jieshu:
.exit 0
End
.stack
.data
buffer db 255 ;定义缓冲区,第1字节填入可能输入的最大字符数
db 0 ;第2个字节将用于存放实际输入的字符数
db 255 dup(0) ;第3字节开始用于存放输入的字符串
.code
.startup
mov dx,seg buffer ;操作符seg取得buffer的段地址
mov ds,dx ;设置数据段ds
mov dx,offset buffer ;提供入口参数:dx?字符串的偏移地址
mov ah,0ah
int 21h ;一个字符串的输入
mov si,offset buffer ;汇编操作符offset指示buffer的偏移地址
mov di,offset buffer
inc si
inc si
again:
lodsb ;串读取
cmp al,24h ;比较al,24h $
jz jieshu ;如果相等,jieshu
cmp al,60h ;比较al,60h <a
jb display ;如果低于,display
sub al,20h ;al?al-20 大小写转换
display:
mov ah,02h
mov dl,al
int 21h ;一个字符的输出
loop again ;循环again
jieshu:
.exit 0
End
作者: daishunchaoaiqiu 发布时间: 2010-11-24
错在哪里,输入后为什么没显示
作者: daishunchaoaiqiu 发布时间: 2010-11-24
debug否
作者: masmaster 发布时间: 2010-11-24
引用 2 楼 masmaster 的回复:
debug否
debug否
显示出来是黑屏
作者: daishunchaoaiqiu 发布时间: 2010-11-24
引用 3 楼 daishunchaoaiqiu 的回复:
引用 2 楼 masmaster 的回复:
debug否
显示出来是黑屏
引用 2 楼 masmaster 的回复:
debug否
显示出来是黑屏
就是说,你需要debug你的程序。
作者: masmaster 发布时间: 2010-11-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28