a349: 2. 指令解譯器
Tags :
Accepted rate : 133人/138人 ( 96% ) [非即時]
評分方式:
Tolerant

最近更新 : 2014-10-29 13:42

Content

志豪家裡有一部很珍貴的骨董電腦。這部電腦只有四個16-位元 (bit) 的暫存器和八個字組 (word,每個字組亦為16-bit) 的主記憶體。它的中央處理器的部份指令格式如下:

 

指令

指令格式

指令意義

LOAD

LOAD RD MS

將記憶體位址MS的字組數值載入暫存器RD

STORE

STORE MD RS

將暫存器RS的數值存回記憶體位址 MD的字組

ADD

ADD RD RS1 RS2

將暫存器RS1 RS2 的數值和存入暫存器RD

MOVE

MOVE RD RS

將暫存器RS的數值存入暫存器 RD

 

假設暫存器的編號從0開始,主記憶體位址也同樣從0開始。若已知主記憶體位址01的數值為123456,以下程式片段執行後會將579 (123 + 456) 存入主記憶體位址2的字組。

 

LOAD 0 0

LOAD 1 1

ADD 2 0 1

STORE 2 2

 

請你撰寫一個程式,讀入一串指令(只會出現上述四種指令),模擬這串指令執行的結果,並將執行後第一個暫存器和第一個記憶體字組的內容顯示出來。

假設1:所有暫存器的初始數值皆為0

假設2:計算過程中不會有溢位情形發生。
Input

第一行至第八行為八個記憶體字組的初始數值。

第九行有一個正整數N (1≤ N ≤ 50),代表指令個數。

第十行開始有N行,每一行為一個指令。

Output

請依序輸出第一個暫存器(編號0號)和第一個記憶體字組(編號0號)的數值內容。

Sample Input
輸入範例一
123
456
0
0
0
0
0
0
4
LOAD 0 0
LOAD 1 1
ADD 2 0 1
STORE 2 2


輸入範例二
100
200
300
400
0
0
0
0
7
LOAD 0 0
LOAD 1 1
ADD 2 0 1
LOAD 0 2
MOVE 3 2
ADD 0 3 1
STORE 3 0
Sample Output
輸出範例一
123
123


輸出範例二
500
100
測資資訊:
記憶體限制: 512 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (20%): 1.0s , <1K
公開 測資點#2 (20%): 1.0s , <1K
公開 測資點#3 (20%): 1.0s , <1K
公開 測資點#4 (20%): 1.0s , <1K
Hint :
Tags:
出處:
100學年度北基區資訊學科能力競賽 [管理者:
pcshic (PCSHIC)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」