首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >打印一个用户输入的字符,也许是用`cout`的方式吧?

打印一个用户输入的字符,也许是用`cout`的方式吧?
EN

Stack Overflow用户
提问于 2021-10-22 10:38:36
回答 1查看 53关注 0票数 0

我想知道如何用汇编语言打印用户输入的字符。(假设我已经有了小写的值,并且我想用大写打印它。)

代码语言:javascript
运行
复制
lowercase  DB  "Input a letter: $"
uppercase  DB  "The uppercase equivalent of letter <the lowercase letter the user inputted> is: $"

相反,如果它是用c++编写的,它将是:

代码语言:javascript
运行
复制
cout << "The uppercase equivalent of letter" << lowercase << "is: " << endl"

我怎么发动汽车呢?

EN

回答 1

Stack Overflow用户

发布于 2021-10-22 21:14:48

首选的解决方案是在输出字符串中插入“用户输入的小写字母”。我看到您已经用$结束了字符串,所以可以使用DOS.PrintString函数09h一次打印所有内容。

  • 使用占位符问号(或您喜欢的任何其他字符)定义大写字符串:

大写db“相当于字母?的大写字母是:$”^占位符

  • 为了便于对占位符进行寻址,您可以将字符串写在两行上,这样就可以在占位符前面放置一个标签:

uppercase_ db“相当于字母” db“的大写字母是:$”^占位符

  • 将占位符替换为用户输入中的小写字母:

uppercase_,al;AL是小写的

  • 使用DOS.PrintString函数09H打印字符串:

mov dx,偏移大写mov ah,09小时整数21小时

显示大写字母怎么样?

不需要单独输出。最简单的解决方案是也将其包含在输出字符串中。

  • 只需在终止$字符之前添加第二个占位符。我们可以通过计算字符来轻松地建立一个偏移量,而不是拆分第三行(这两个占位符是分开的6个字符):

placeholder2 db“相当于字母”uppercase_ db“的大写字母是:?$”^ placeholder1 uppercase

  • 替换这两个占位符。在省略号...处,您必须将小写转换为大写!

mov uppercase_,al;AL是小写...mov uppercase_ + 6,al;AL表示大写

  • 使用DOS.PrintString函数09h打印字符串。

mov dx,偏移大写mov ah,09小时整数21小时

有关显示文本的一些背景信息,请阅读此Q/A Displaying characters with DOS or BIOS。它提供了打印每个字符的文本字符字符串的示例。

使其更符合cout的功能

如果需要覆盖占位符的基准面具有不同的长度,则上述解决方案不再适用。使用5个字符的占位符,请考虑:

代码语言:javascript
运行
复制
db 'Your donation of       € is much appreciated.$'

如果捐赠金额为5位数,则可以正常打印出来:

非常感谢你捐赠的20000欧元。

但如果捐款数额很小,就不再那么值得关注了:

非常感谢您捐赠的5欧元。

在这个场景中,我们必须使用不同的方法来输出附带的文本,而不是输出介于两者之间的数字。

代码语言:javascript
运行
复制
ThankYou1 db 'Your donation of $'
ThankYou2 db ' € is much appreciated.$'

...

mov     dx, offset ThankYou1
mov     ah, 09h
int     21h

mov     ax, [amount]
call    DisplayNumber

mov     dx, offset ThankYou2
mov     ah, 09h
int     21h

有关如何编写DisplayNumber例程的想法,请参阅Displaying numbers with DOS

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69675429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档