a349. 2. 指令解譯器
標籤 :
通過比率 : 416人/456人 ( 91% ) [非即時]
評分方式:
Tolerant

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

內容

志豪家裡有一部很珍貴的骨董電腦。這部電腦只有四個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開始。若已知主記憶體位址0和1的數值為123和456,以下程式片段執行後會將579 (123 + 456) 存入主記憶體位址2的字組。

 

LOAD 0 0

LOAD 1 1

ADD 2 0 1

STORE 2 2

 

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

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

假設2:計算過程中不會有溢位情形發生。
輸入說明

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

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

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

輸出說明

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

範例輸入 #1
輸入範例一
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
範例輸出 #1
輸出範例一
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
提示 :
標籤:
出處:
100學年度北基區資訊學科能力競賽 [管理者:
Unknown User
]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
44170 toseanlin@gm ... (Dr. SeanXD) a349
C++詳解
22 2024-11-09 10:09
40959 seancai78@gm ... (風月春秋) a349
下次還填......
135 2024-06-21 19:24
40668 n0970616056@ ... (CIOU-HE-CHEN) a349
解答 python
121 2024-06-04 22:07