Apple WormはApple Computerが作成したコンピュータ プログラムで、特に6502 マイクロプロセッサ向けに開発され、動的自己再配置を実行します。Apple Worm のソースコードは、 Scientific Americanに初めて全文掲載されたプログラムです。[ 1 ] Apple Worm は James R. Hauser と William R. Buckley によって設計および開発されました。他の Apple Worm プログラムの例は、Call_A.PPLE Magazine 1986 年 11 月号の表紙記事で紹介されています。[ 2 ]
Apple Wormは、1台のコンピュータのメインメモリ内で動的な自己再配置を行うため、コンピュータウイルスには該当しません。これは、やや不正確な表現ではありますが、適切な表現です。メモリ間でコードをコピーするという類似の動作は、コンピュータウイルスが行う動作と全く同じですが、ウイルスにはワームにはない他の特徴があります。このようなプログラムは、命令が実行されるコンピュータシステムに必ずしも付随的な損害を与えるわけではありません。後続の実行を確実にするためのベクターに依存していないのです。これはコンピュータウイルスにも当てはまります。コンピュータウイルスは、計算環境間で通信を行うために破壊的である必要はありません。
一般的なコンピュータプログラムは、コンピュータプログラムの物理的な表現とは別の外部にあるデータを操作します。プログラマ用語で言えば、これはコード空間とデータ空間が分離されていることを意味します。コード空間に保持されているデータなど、物理的な表現の内部にあるデータを操作するプログラムは自己関係的です。少なくとも部分的には、その機能は自身の機能を維持することです。この意味で、動的自己再配置器は、ダグラス・R・ホフスタッターが定義した自己参照システムです。[ 3 ]
PDP-11コンピュータの命令セットには、データ移動命令が含まれています。この命令は、特定の形式で記述すると、命令ポインタレジスタの自動デクリメントを含む、上位アドレスから下位アドレスへデータ移動を行う命令です。したがって、この命令に命令ポインタの自動デクリメントが含まれている場合、動的自己再配置命令として機能します。
自己再配置プログラムのより最近の例としては、Intel 80x86マイクロプロセッサとその派生製品 ( Pentiumなど) 、および対応するAMDマイクロプロセッサ向けの Apple Worm の適応版がある。[ 4 ]