Redcodeとは何? わかりやすく解説 Weblio辞書 (original) (raw)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/12/10 07:45 UTC 版)

コア戦争」の記事における「Redcode」の解説

詳細は「en:Redcode」を参照 0000: ADD.AB # 4, $ 30001: MOV.F $ 2, @ 20002: JMP.B $ -2, $ 00003: DAT.F # 0, # 0 ICWS-94 スタイルの Redcodeでアセンブルされる。Assembled ICWS-94 style Redcode Redcode と MARS 環境現実コンピュータプロセッサ複雑さなしに単純で抽象的なプラットフォーム提供するよう設計されている。Redcode は平凡なCISC アセンブリ言語似せられているが、多くの点で実際アセンブリ言語とは異なっている: Redcode はごく少な命令を持つ。ICWS-88 では 10、ICWS-94 では 18いずれのアセンブルされた命令命令コード二つ数値フィールド分割される数値命令コードには定義されないコード命令全体一部としてコピーだけされ、同等に比較されるopcode二つ数値フィールド加えて、ICWS-94はいずれの Redcode 命令データサイズ(ひとつのフィールド両方フィールド命令全体いずれか)を定義する修飾子』(modifier)を持つことを を可能にする。さらに、いずれの数値フィールド関連するアドレッシングモード持っている。ICWS-88は4つアドレッシングモード定義しており、ICWS-94 ではこれは8にまで拡張されている。 どの Redcode命令も同じ長さ実行時間を持つ。メモリ一命単位配置されるすべての数はメモリサイズより小さ符号なし (つまり非負)整数である。それゆえ数とメモリ位置には一対一の対応がある。すべての演算はメモリサイズを法としたモジュラ演算行われる相対アドレッシングのみが使われる。これはアドレス“0”は常に現在実行中命令指していて、アドレス“1”はその後ろの命令となっている。メモリ境界超えたアドレス空間最初からに丸められる。このためプログラムメモリ上の絶対位置を知ることは出来ない(知る必要はない)。 いずれのプログラム自身命令ポインタを持ついくつかのアクティブプロセス持っているいずれのプログラムも1プロセスから開始するが、他のプロセスSPL命令によって作られるそれぞれのプログラムプロセス交互に実行されそれゆえどのプログラムもそのプログラムが持つアクティブプロセスの数に反比例し実行スピードになる。プロセスはDAT命令実行した時か、ゼロ除算したときに死ぬ。プログラムはひとつもプロセス残っていないときに死んだみなされる

※この「Redcode」の解説は、「コア戦争」の解説の一部です。
「Redcode」を含む「コア戦争」の記事については、「コア戦争」の概要を参照ください。