免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4769 | 回复: 7
打印 上一主题 下一主题

键盘输入的大、小写字母字符串,均用大写字母显示在屏幕上 [复制链接]

论坛徽章:
1
巨蟹座
日期:2014-09-15 14:33:54
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-20 20:44 |只看该作者 |倒序浏览
;------------------------------------------------------------------------
;编写一程序,要求对键盘输入的大、小写字母字符串,均用大写字母显示在屏幕上
;------------------------------------------------------------------------
code segment                     ;代码段
     assume cs:code,ds:code
     org 100h                    ;从100h开始
start:jmp begin                  ;跳到begin
p1 db 100                  
p2 db 0
array db 100h dup(?)             ;置100个字节的缓冲区存放数据
begin:lea bx,array               ;将array的首地址给bx
      mov ax,cs                  ;置cs-->ds
      mov ds,ax
      mov dx,offset p1           ;将p1的偏移量给dx
      mov ah,0ah                 ;调用中断21的0a号功能从键盘接收字符
      int 21h
      xor bx,bx                  ;将bx清零
      mov bl,p2                  ;p2-->bl
      mov array[bx],'$'          ;送'$'至字符串尾
      mov di,0ffffh              ;-1-->di
next: inc di                     ;di自加
      cmp array[di],'$'          ;比较
      je  exit                   ;相等,则跳到exit执行
      cmp array[di],61h          ;(A~Z-->41h-5ah  a~z-->61h-7ah)与a比较
      jl  disp                   ;小于,则跳
      cmp array[di],7ah          ;与z比较
      jg  disp                   ;大于,则跳
      sub array[di],20h          ;减20h,小写转大写
disp: loop next
exit: mov p1,0dh                 ;回车换行
      mov p2,0ah
      mov ah,09h
      int 21h
      mov ah,4ch                 ;程序结束
      int 21h   
code ends
     end begin

论坛徽章:
1
巨蟹座
日期:2014-09-15 14:33:54
2 [报告]
发表于 2007-11-28 12:35 |只看该作者

急啊,下周就要上机检查这个!

以上是输入小写时转换大写,遇其它情况不做变动,原样输出,谁能替我加一段代码,使它在输入小写情况以外时,输出一个提示ERROR单词.

论坛徽章:
1
巨蟹座
日期:2014-09-15 14:33:54
3 [报告]
发表于 2007-11-28 12:39 |只看该作者

急啊,下周就要上机检查这个!

:m01: :m01: :m01: :m01: :em02: :em02: :em02: :em02:

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
4 [报告]
发表于 2007-11-28 12:49 |只看该作者
这个,属于协议类问题,只好自己对着资料,对着代码调吧。

论坛徽章:
0
5 [报告]
发表于 2007-11-28 14:29 |只看该作者
使它在输入小写情况以外时,输出一个提示ERROR单词.
-----------------------
既然你能做的出小写转大写,
以你的水平来说,这个也不会有任何难度。

把cmp--jcc的条件和跳转地址改一下就可以了,再加一个显示ERROR的函数。

论坛徽章:
1
巨蟹座
日期:2014-09-15 14:33:54
6 [报告]
发表于 2007-11-30 11:18 |只看该作者

能给俺补上吗!

本人最近很忙又没有精力,希望有人帮我改出来,谢谢!!!

论坛徽章:
1
巨蟹座
日期:2014-09-15 14:33:54
7 [报告]
发表于 2007-11-30 11:20 |只看该作者

把cmp--jcc的条件和跳转地址改一下就可以了,再加一个显示ERROR的函数。

希望骑士帮忙!帮我改出来,谢谢!!!

论坛徽章:
1
巨蟹座
日期:2014-09-15 14:33:54
8 [报告]
发表于 2007-12-11 01:29 |只看该作者

终于做出来了,还的靠自己!!!

data segment
        msg byte'Eroor',0dh,0ah,'$'
        data ends


code segment                     ;代码段
     assume cs:code,ds:code
     org 100h                    ;从100h开始
start:jmp begin                  ;跳到begin
p1 db 100                  
p2 db 0
array db 100h dup(?)             ;置100个字节的缓冲区存放数据
begin:lea bx,array               ;将array的首地址给bx
      mov ax,cs                  ;置cs-->ds
      mov ds,ax
      mov dx,offset p1           ;将p1的偏移量给dx
      mov ah,0ah                 ;调用中断21的0a号功能从键盘接收字符
      int 21h
      xor bx,bx                  ;将bx清零
      mov bl,p2                  ;p2-->bl
      mov array[bx],'$'          ;送'$'至字符串尾
      mov di,0ffffh              ;-1-->di
next: inc di                     ;di自加
      cmp array[di],'$'                ;相等,则跳到exit执行
      je exit
      
      cmp array[di],61h          ;(A~Z-->41h-5ah  a~z-->61h-7ah)与a比较
      jl  @f                  ;小于,则跳
      cmp array[di],7ah          ;与z比较
      jg  @f                   ;大于,则跳
      sub array[di],20h          ;减20h,小写转大写
      loop next
@@:        mov ax,data
        mov ds,ax
        mov dx,offset msg
        mov ah,9
        int 21h
       
exit: mov p1,0dh                 ;回车换行
      mov p2,0ah
      mov ah,09h
      int 21h
      mov ah,4ch                 ;程序结束
      int 21h   
code ends
     end begin

评分

参与人数 1可用积分 +6 收起 理由
sakulagi + 6 我很赞同。支持分享

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP