回分類題庫
d248: 程式作業1 系統程式2014
出處:

Difficulity : N/A
Accepted : 63 Times | Submit :572 Times | Clicks : 3662
Accepted : 39 Users | Submit : 60 Users | Accepted rate : 65%
Time Limit :10000 ms | Memory Limit : 64000 KBytes
題目加入時間 : 2014-02-26 18:41

Content :

請參考課本附錄A 

分析16進位機械碼,將機械碼翻譯成SIC/XE組合語言。

依能通過的測試資料,決定成績。

0~60: SIC指令

61~80: SIC/XE FORMAT1/2 指令

81~100: SIC/XE FORMAT3, 4 (本次作業測資排除indirect定址)

Input :

第一行格式為  P 16進位數值 B  16進位數值
ex: P 000100 B 000200
表示P暫存器的內容為000100 (Hex), B暫存器的內容為000200 (Hex)
 
之後每一行為一串SIC/XE 16進位機械碼(object code in Hexadecimal)
 
請取出每一行的指令進行分析,翻譯成SIC/XE組合語言指令

Output :

針對每一行16進位機械碼的指令進行翻譯解碼
 
第一個字串為 SIC or SIC/XE 指令,如: LDA

第二個字串主要為計算Target Address (TA)有以下幾種可能  
-SIC
*位址(十進位數). ex: 100
*位址(十進位數),X. 表示使用index定址 ex: 100,X
 
-SIC/XE Format 1/2 
* 無字串 
* 一個或兩個暫存器代碼(逗點前後不必有空格). ex: S  or  A,S 
 
-SIC/XE Format 3/4 
根據object code計算出Target Address(考慮n,i,x,b,e的影響, ex: b=1, 需將B暫存器的值加入TA的位址) 
* TA位址(十進位數). ex: 100
* x=1,TA位址(十進位數),X. 表示使用index定址 ex: 100,X 
* immediate定址. #十進位數, ex: #5
* LDCH指令使用immediate定址時,請翻成對應的ASCII碼, ex: C'Z' 

Sample Input :

P 000100 B 000200
000000
188020

Sample Output :

LDA 0
ADD 32,X

Hint :


  

Author :

(管理員:sp14_TA)

  Solve it!   Status Forum (0)

C++
C
JAVA
52727. sp101703014 (4 ms , 442KB)
52708. sp101703014 (4 ms , 435KB)
52501. sp101703003 (4 ms , 425KB)
52500. s10103 (4 ms , 432KB)
52728. sp101703014 (6 ms , 441KB)
52829. sp98703011 (1 ms , 224KB)
52754. sp101703042 (1 ms , 232KB)
52749. sp101703007 (1 ms , 225KB)
52625. sp101703001 (1 ms , 224KB)
52498. sp101703009 (1 ms , 235KB)
52774. sp101703012 (128 ms , 914KB)

執行時間會受很多因素影響因此僅供參考,主機等級請看這裡