Turing Complete Unofficial

Calibrating Laser Cannons

前提レベル

このレベルを前提とするレベル

概要

数式2 \times \pi \times rで表される小惑星の直径を計算して出力するプログラムを作成する問題です。 ただし、rは入力される値であり、\piは3で近似します。

攻略

入力の値を3倍し、その結果をさらに2倍すれば良いです。 同じ値を3個足すことで3倍、2個足すことで2倍にできます。

このレベルから、プログラムをテキストで入力することができます。 数値は、普通に入力すると10進数、 0x で始めると16進数、 0b で始めると2進数となります。 行中の # 以降はコメントとなり、無視されます。 label に続いて名前を書くと、次のデータの位置を表す数値がその名前に割り当てられます。 名前は、数値のかわりに用いることができます。 エディタの左側 Assembly codes で、ビット列(数値)に名前をつけて使用することができます。

解答

開く

OVERTUREアーキテクチャのプログラム例を示します。

# 3
0b10110001 # R1 <- INPUT
0b10001010 # R2 <- R1
0b01000100 # R3 <- R1 + R2
0b10011010 # R2 <- R3
0b01000100 # R3 <- R1 + R2
# 2
0b10011001 # R1 <- R3
0b10011010 # R2 <- R3
0b01000100 # R3 <- R1 + R2
# 
0b10011110 # OUTPUT <- R3