字符串小写到大写表示复制最后一个字母,而不是大写字符串

编程入门 行业动态 更新时间:2024-10-27 12:31:27
本文介绍了字符串小写到大写表示复制最后一个字母,而不是大写字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在编写一个程序,将多个小写字母转换为其等效的大写字母。

例如,我想要的输出是:

Input a letter: asddf

The uppercase equivalent of letter asddf is ASDDF

但它只获取并打印最后一个字符,如下所示:

Input a letter: asddf

The uppercase equivalent of letter fffff is FFFFF

如何修复此问题?我知道我的代码不正确,但我不知道哪里出了错,因为我对这门语言仍然是新手。谢谢!

以下是我的代码:

org 100h LEA DX, lowercase MOV AH, 9 INT 21H MOV CX, 5 MOV AH, 1 @LOOP: INT 21H LOOP @LOOP MOV BL, AL LEA DX, uppercase MOV AH, 9 INT 21H MOV DL, BH MOV AH, 02H INT 21h MOV CX, 5 MOV DL, BL MOV AH, 02H @LOOP2: INT 21h LOOP @LOOP2 LEA DX, uppercase_ MOV AH, 9 INT 21H SUB BL, 20H MOV CX, 5 MOV AH, 2 MOV DL, BL @LOOP3: INT 21H LOOP @LOOP3 MOV AH, 4CH INT 21H ret lowercase db "Input a letter: $" uppercase db 0AH, 0DH, "The uppercase equivalent of letter$" uppercase_ db " is $" 推荐答案

我知道我的代码不正确,但我不知道哪里出错了

  • 输入循环应将字符存储在某个位置
  • MOV CX, 5 MOV AH, 1 @LOOP: INT 21H <<<< LOOP @LOOP
  • 第一个输出循环应检索并使用未经修改的存储的字符
  • MOV CX, 5 MOV DL, BL MOV AH, 02H @LOOP2: INT 21h <<<< LOOP @LOOP2
  • 第二个输出循环应检索存储的字符并将其大写
  • MOV CX, 5 MOV DL, BL MOV AH, 02H @LOOP3: INT 21h <<<< LOOP @LOOP3 常规解决方案 在代码中添加一行内容为buffer db 5 dup(0)。然后更改所有循环,如下所示:

    • 这是存储以下内容的循环:
    xor bx, bx @LOOP: ... mov [buffer + bx], al ; Store lowercase inc bx cmp bx, 5 jb @LOOP
    • 这是一个检索
    xor bx, bx @LOOP: mov dl, [buffer + bx] ; Retrieve lowercase ... inc bx cmp bx, 5 jb @LOOP 特殊解决方案 由于您已经将字符数硬编码为5,因此可以使用我在my previous answer中向您展示的相同技术。它将允许您一次打印所有内容:

    uppercase db 0AH, 0DH, "The uppercase equivalent of letter$" uppercase_ db "????? is ?????$" ; ^ ^ ; | 9 characters apart ... xor bx, bx @LOOP: mov ah, 01h ; DOS.GetCharacter int 21h ; -> AL mov [uppercase_ + bx], al ; Store lowercase sub al, 32 mov [uppercase_ + bx + 9], al ; Store uppercase inc bx cmp bx, 5 jb @LOOP ... Print with DOS.PrintString 09h

    更多推荐

    字符串小写到大写表示复制最后一个字母,而不是大写字符串

    本文发布于:2023-11-12 11:32:57,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1581385.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:字符串   写到   字母   而不是

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!