键盘输入的大、小写字母字符串,均用大写字母显示在屏幕上

发布于 2022-09-26 12:25:17 字数 3310 浏览 21 评论 0

;------------------------------------------------------------------------
;编写一程序,要求对键盘输入的大、小写字母字符串,均用大写字母显示在屏幕上
;------------------------------------------------------------------------
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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

世界和平 2022-10-03 12:25:17

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

沫尐诺 2022-10-03 12:25:17

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

从来不烧饼 2022-10-03 12:25:17

这个,属于协议类问题,只好自己对着资料,对着代码调吧。

独木成林 2022-10-03 12:25:17

使它在输入小写情况以外时,输出一个提示ERROR单词.
-----------------------
既然你能做的出小写转大写,
以你的水平来说,这个也不会有任何难度。

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

尐籹人 2022-10-03 12:25:17

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

九公里浅绿 2022-10-03 12:25:17

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

李白 2022-10-03 12:25:17

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文