2011-09-26 61 views
0

所以基本上我有一堂課,老師們設計了我們使用的程序,他們基本上說「做這些沒有背景信息的實驗室」。在UART中取出堆棧並以相反順序打印

現在我必須使用程序集製作一個RPN計算器,除了必須以相反順序(堆棧)打印它外,我已經完成了所有代碼的編碼。

這很容易,除非我們在每個堆棧槽中使用2位數字。

我的一個簡單問題是如何取一個2位數的數字並將其分成每一位。

一個例子是具有數52和比特分成5和2(然後通過UART發送2)(然後通過在UART 5發送),從而輸出將是52

+0

此外,在這個不錯的小程序中,沒有除法運算符。只能加,減,乘。 –

回答

1

要獲得數字一個數字除以基數(在這種情況下,我假設基數爲10)。其餘是最不重要的數字;商是剩餘的數字。重複更多數字。

由於沒有除法指令,只有兩個數字,這裏是一個俗氣的方法:

quotient = 0; 

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

確保number是肯定第一!

+0

如果我們有一個除法函數,那將起作用。我在程序中創建了我自己的分區類型函數,但我不確定它是否可行,請測試。 –

+0

太棒了。會試試這個。必須完成我的phys 2 HW,然後在330之前完成。 –