PIC18
A resposta PIC18 dada por TK resulta nas seguintes instruções (binárias):
overflow
PUSH
0000 0000 0000 0101
CALL overflow
1110 1100 0000 0000
0000 0000 0000 0000
No entanto, CALL sozinho executará um estouro de pilha:
CALL $
1110 1100 0000 0000
0000 0000 0000 0000
PIC18 menor e mais rápido
Mas o RCALL (chamada relativa) ainda é menor (não a memória global, portanto, não há necessidade de 2 bytes extras):
RCALL $
1101 1000 0000 0000
Portanto, o menor do PIC18 é uma única instrução, 16 bits (dois bytes). Isso levaria 2 ciclos de instrução por loop. Em 4 ciclos de relógio por ciclo de instrução, você tem 8 ciclos de relógio. O PIC18 possui uma pilha de 31 níveis, portanto, após o 32º loop, ela excederá a pilha, em 256 ciclos de clock. Em 64MHz, você sobrecarregaria a pilha em 4 microssegundos e 2 bytes .
PIC16F5x (ainda menor e mais rápido)
No entanto, a série PIC16F5x usa instruções de 12 bits:
CALL $
1001 0000 0000
Novamente, dois ciclos de instrução por loop, 4 relógios por instrução e 8 ciclos de clock por loop.
No entanto, o PIC16F5x possui uma pilha de dois níveis; portanto, no terceiro loop, ela excederá em 24 instruções. A 20MHz, ele transbordaria em 1,2 microssegundos e 1,5 bytes .
Intel 4004
O Intel 4004 possui uma instrução de sub-rotina de chamada de 8 bits:
CALL $
0101 0000
Para os curiosos que correspondem a um ascii 'P'. Com uma pilha de 3 níveis que leva 24 ciclos de relógio para um total de 32,4 microssegundos e um byte . (A menos que você faça um overclock no seu 4004 - vamos lá, você sabe que deseja).
Que é tão pequeno quanto a resposta do befunge, mas muito, muito mais rápido que o código do befunge executado nos intérpretes atuais.