Assembly 获取堆栈并在UART中按相反顺序打印

Assembly 获取堆栈并在UART中按相反顺序打印,assembly,printing,stack,bits,Assembly,Printing,Stack,Bits,所以基本上我有一节课,老师设计了我们使用的程序,他们基本上说“在没有背景信息的情况下做这些实验室” 现在我必须用汇编语言制作一个RPN计算器,我已经把它全部编码好了,除了我必须按相反的顺序打印(堆栈) 这将很容易,除非我们在每个堆栈插槽中使用2位数字 我的简单问题是,如何将一个2位数的数字拆分为每一位 例如,将数字52拆分为5(然后在UART中通过5发送)和2(然后通过UART发送2),因此输出为52。要获得数字的位数,请除以基数(在本例中,我假设基数为10)。余数是最低有效位;商是剩余的数字。

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

现在我必须用汇编语言制作一个RPN计算器,我已经把它全部编码好了,除了我必须按相反的顺序打印(堆栈)

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

我的简单问题是,如何将一个2位数的数字拆分为每一位


例如,将数字52拆分为5(然后在UART中通过5发送)和2(然后通过UART发送2),因此输出为52。

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

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

quotient = 0;

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

首先确保
number
为正

另外,在这个漂亮的小程序中,没有除法运算符。只有加、减、乘。如果我们有除法函数,那就行了。我在程序中创建了自己的除法类型函数,但我不确定它是否有效,将测试。真棒。我要试试这个。必须完成我的物理2硬件,然后在330之前完成。