2015-12-11 43 views

回答

1

由於vvm在硬件中沒有拆分指令,因此您必須「手動」進行拆分。它甚至沒有右移或任何可以讓你測試最後一位的布爾運算符。

但是,向自身添加一個數字是左移的,所以您仍然可以製作一個運行在log(n)時間的算法,而不僅僅是重複的減法。

0

對於非常小的機器,最簡單的方法是從股息反覆減去除數,直到被否定:

這個例子進行12/4:

lda 90 
brz 20 
sub 91 
sto 90 
brp 10 
jmp 20 
*10 
lda 92 
add 93 
sto 92 
jmp 00 
*20 
lda 92 
out 
hlt 
*90 
dat 012 
dat 004 
dat 000 
dat 001 
+0

對於學生來說,給他們一個解決方案實際上是沒有幫助的。我知道這並不能解決一般問題,但我認爲最好堅持英文描述。一個廣泛的問題得到了我的廣泛答案,而不是針對特定解決方案的任何代碼。 [致家庭作業問題的學生的公開信](http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems)。我回答,但也投票結束太寬泛,並低估了沒有表現出嘗試。 :/ –

相關問題