假設計算機的主記憶體的每個記憶單元可以儲存一個整數,且記憶單元的標號為:
m0, m1,….這個計算機的指令集為:
(a) l:let mi=mi+mj
(b) l:let mi=mi-mj
(c) l:let mi=mi mj
(d) l:let mi=mi/mj
(e) l:if mi=0 then l0 else l1
(f) l:print
(g) l:halt
其中每個指令之前的“l:"是這個指令的編號,let 指令做整數的四則運算,運算
的結果都是整數,例如:5/2=2。if 指令測試mi 的值是否為0,若是0,則跳到標
號為l0 的指令繼續做,否則就跳到標號為l1 的指令繼續做。print 這個指令會將m0
的值印出來,遇到halt 則停止。將下面用類似C 語言撰寫的程式轉換為由這個計算
機的指令集所組成的程式。在程式中,a mod b 就是求a 除以b 的餘數。假設程式
開始時,a 儲存在m1,b 儲存在m2。 (20 分)
while (b≠0) {
r = a mod b;
a = b;
b = r;
}
print a;
*