PIC18
TKのによって与えられたPIC18の答え以下の手順で結果(バイナリ):
overflow
PUSH
0000 0000 0000 0101
CALL overflow
1110 1100 0000 0000
0000 0000 0000 0000
ただし、CALLだけではスタックオーバーフローが実行されます。
CALL $
1110 1100 0000 0000
0000 0000 0000 0000
小型で高速なPIC18
ただし、RCALL(相対呼び出し)はさらに小さくなります(グローバルメモリではないため、追加の2バイトは必要ありません)。
RCALL $
1101 1000 0000 0000
したがって、PIC18で最小のものは、16ビット(2バイト)の単一命令です。これはループごとに2命令サイクルかかります。命令サイクルごとに4クロックサイクルで、8クロックサイクルを得ます。PIC18には31レベルのスタックがあるため、32回目のループの後、256クロックサイクルでスタックがオーバーフローします。64MHzでは、4マイクロ秒と2バイトでスタックがオーバーフローします。
PIC16F5x(さらに小型で高速)
ただし、PIC16F5xシリーズは12ビット命令を使用します。
CALL $
1001 0000 0000
この場合も、ループあたり2命令サイクル、命令あたり4クロックなので、ループあたり8クロックサイクルです。
ただし、PIC16F5xには2つのレベルのスタックがあるため、3番目のループでは24命令でオーバーフローします。20MHzでは、1.2マイクロ秒と1.5バイトでオーバーフローします。
インテル4004
インテル4004は、 8ビットの呼び出しサブルーチン命令があります。
CALL $
0101 0000
アスキー「P」に対応する好奇心のために。合計32.4マイクロ秒、1バイトで 24クロックサイクルかかる3レベルのスタック。(あなたが4004をオーバークロックしない限り-さあ、あなたはあなたがしたいのを知っています。)
これはbefungeの回答と同じくらい小さいですが、現在のインタープリターで実行されているbefungeコードよりはるかに高速です。