You are on page 1of 1

班級:二甲 姓名: 學號: (最高以 100 計)

SIC/XE CPU (i) Mnemonic 及其 Opcode 如下 LDA: 00; LDB: 68; LDX: 04; JEQ: 30; J: 3C; ADDR: 90;
(ii) Register 之編號與內容如後: A = 0, X = 1, L = 2, B = 3, S = 4, T = 5, F = 6。
(A)= 0000C0, (B) = 006000, (PC) = 003000, (X) = 000090. (ASCII code:'0'=30x, 'A'=41x, x 表示 16 進位)
(iii) Memory 內容如下:[註:(1000):00AC12 表示 address 001000 的連續 3 bytes 內容為 00AC12。]
(3090):006000, (3300):003090, (3600):006300, (6090):003600, (6300):003090, (6600):00C303,
(60C0):003600, (6C00):006600, (C300):00C300, (C303):00C390

1. 以下為 SIC/XE 將取得的指令之連續 4 byte 的記憶體內容:完成欄位(a)~(p)。[4%,4% * 8 = 64%]


[注意:位址內容未知則依據 simple/indirect addressing 填 (你算的位址) 或填 ((你算的位址))。]
1st~3rd 4th Target address Register A value
00 6300 00 (a) 006300 (i) 003090
01 1030 00 (b) 003000 (j) 003000
02 2600 03 (c) 003600 (k) 003090
03 0300 90 (d) 000300 (l) (300)
02 8300 30 (e) invalid (m) invalid
01 2600 00 (f) 003600 (n) 003600
03 A300 00 (g) 003300 (o) 003090
03 4300 00 (h) 006300 (p) 003090

2. [6%]指令內容為 054300x: (a) decode 得到 TA = ? (b) 寫出執行後改變的暫存器或記憶體內容。

3. [15%]目前 program counter (PC)值為 003000x,若 memory address 3000x 到 3003x 的內容為 (a) 68
03 00 03,執行完這個指令後,PC 值為多少?(b) 90 04 00 03,執行完這個指令後,PC 值為多少?
(c) 69 10 60 03,執行完這個指令後,PC 值為多少?

4. [12%]請描述寫一個 Assembly program 到 CPU 可以執行這個程式的過程。(提示: CPU、Memory、


Object program、Machine code、Assembler、Loader)。

5. [8%] 解釋下列 4 個 SIC/XE CPU 的指令差異: 012600、022600、032600、042600。

6. [5%]能否設計出「可執行 SIC/XE 相容指令」的下一版本的 CPU? 說明能或不能的理由才給分。

You might also like