BCC16VM 線上教材

BCC16VM 是專門為了這份教材設計的 4-bit 虛擬電腦。 而此處是一份簡要的使用手冊。 這部虛擬電腦有 3 個暫存器,16 個 Instruction 位址, 16 個 data 位址,16 個機器碼。每個位址的容量是 1 字元, 而資料型態只有一種:無號整數, 也就是第0講就開始介紹的最基本二進制數字表現, 或者是第D講所定義的 N1, 或者是 C 語言的 unsigned int。 BCC16VM 由卓昇勳負責程式設計,用 Java 撰寫, 前後大約一共工作了六個月。 請在另一個視窗開啟 BCC16VM,配合著以下教材, 一邊讀一邊操作,學習效果較好。

[BCC16VM]

以下是 BCC16VM 指令簡表。讀者看完教材之後,就應該可以看懂這份簡表。 而操作 BCC16VM 時,可能也要把這份簡表放在旁邊參考。

指令碼參數碼組合語言記號或說明
00000000stop程式結束
0001print '\n'輸出 '\n' 到 console
0010print ' '輸出 ' ' 到 console
0011print '\t'輸出 '\t' 到 console
0100print '+'輸出 '+' 到 console
0101print '-'輸出 '-' 到 console
0110print '*'輸出 '*' 到 console
0111print '/'輸出 '/' 到 console
1000print '%'輸出 '%' 到 console
1001print '='輸出 '=' 到 console
1010print R0輸出 R0 到 console
1011print R1輸出 R1 到 console
1100print R2輸出 R2 到 console
0001RaRbadd Ra RbRa <- Ra + Rb
0010RaRbsubtract Ra RbRa <- Ra - Rb
0011RaRbmultiply Ra RbRa <- Ra * Rb
0100RaRbdivide Ra RbRa <- Ra / Rb
0101Ngenerate NR2 <- N
0110RaRbtest larger Ra RbRa > Rb
0111RaRbtest equal Ra RbRa == Rb
1000Ngoto NPC <- N
1001RaRbcopy Ra RbRa <- Rb
1010Nload R0 NR0 <- data at N
1011Nload R1 NR1 <- data at N
1100Nload R2 NR2 <- data at N
1101Nstore R0 NR0 -> data at N
1110Nstore R1 NR1 -> data at N
1111Nstore R2 NR2 -> data at N

  1. BCC16VM 的工作環境
  2. 機器碼結構
  3. 記憶體指令 --- load 和 store
  4. 輸出訊息 --- print
  5. 產生常數 --- generate, copy, add, multiply
  6. 程式指標 --- PC
  7. 指定位址 --- goto
  8. 流程控制--if --- test larger, test equal
  9. 流程控制--if-else
  10. 流程控制--loop


Up User Forum BCC16 Home Chap 0 Chap 1 Chap 2 Chap 3 Chap 4 Chap 5 Chap 6 Chap 7 Chap 8 Chap 9 Chap A Chap B Chap C Chap D Chap E Chap F Copyright Pool
製作人、
修改記錄
單維彰 (2004/06/09) ---