获取堆栈并在 UART 中以相反顺序打印它

发布于 2024-12-06 16:59:16 字数 272 浏览 0 评论 0原文

所以基本上我有一堂课,老师们设计了我们使用的程序,他们基本上说“在没有背景信息的情况下做这些实验”。

现在我必须使用汇编制作一个 RPN 计算器,并且我已经对所有内容进行了编码,除了我必须以相反的顺序(堆栈)打印它。

这很容易,除非我们在每个堆栈槽中使用 2 位数字。

我的简单问题是如何获取一个 2 位数字并将其拆分为每位。

例如,数字为 52,并将这些位分成 5 个(然后通过 UART 发送 5)和 2 个(然后通过 UART 发送 2),因此输出将为 52。

So basically I have a class where the teachers designed the program that we use, and they basically said "Do these labs with no background information".

Right now I have to make a RPN calculator using assembly and I have gotten all of it coded except i have to print it in reverse order (the stack).

It would be easy, except we are using 2 digit numbers in each stack slot.

My simple question is how can I take a 2 digit number and split it into each bit.

An example would be having the number 52 and splitting the bits into 5 (then sends through 5 in UART) and 2 (then sends 2 through UART) so the output would be 52.

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

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

发布评论

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

评论(1

甜扑 2024-12-13 16:59:16

要获取数字的数字,请除以基数(在本例中我假设基数为 10)。余数为最低有效数字;商是剩余的数字。重复更多数字。

由于没有除法指令,只有两位数字,这里有一个俗气的方法:

quotient = 0;

while (number >= 10)
{
    number = number - 10;
    quotient = quotient + 1;
}
print msdigit;
print number;

首先确保 number 为正数!

To get the digits of a number, divide by the base (in this case base 10 I assume). The remainder is the least significant digit; the quotient is the remaining digits. Repeat for more digits.

With no divide instruction, and only two digits, here's a cheesy approach:

quotient = 0;

while (number >= 10)
{
    number = number - 10;
    quotient = quotient + 1;
}
print msdigit;
print number;

Make sure number is positive first!

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