Gruppo Z80 o 8080, codice macchina 21 byte
Supponiamo che un dispositivo I / O mappato in memoria:
Z80 8080
3A xx xx ld a, (input) ingresso lda; ottenere il carattere di input
11 0A 20 ld de, 200ah lxi d, 200ah; spazio e newline
21 yy yy ld hl, output lxi h, output; ottenere l'indirizzo di uscita
77 ld (hl), a mov m, a; carattere di output * 3
77 ld (hl), a mov m, a
77 ld (hl), a mov m, a
73 ld (hl), e mov m, e; uscita newline
77 ld (hl), a mov m, a; carattere di output
72 ld (hl), d mov m, d; spazio di uscita
77 ld (hl), a mov m, a; carattere di output
73 ld (hl), e mov m, e; uscita newline
77 ld (hl), a mov m, a; carattere di output * 3
77 ld (hl), a mov m, a
77 ld (hl), a mov m, a
76 stop hlt; o C9 ret
Nessun interprete necessario!
hexdump:
0000: 3A 00 FF 11 0A 20 21 01 FF 77 77 77 73 77 72 77
0010: 73 77 77 77 76
dove l'indirizzo di input è su FF00h e l'indirizzo di output è mappato su FF01h. Gli indirizzi effettivi dipenderanno dall'hardware effettivo. Ovviamente ciò presuppone che l'I / O sia mappato in memoria. Se è mappato I / O, occorrerebbero diversi byte extra poiché le istruzioni I / O Z80 e 8080 sono due byte ciascuna. Ciò presuppone anche che il dispositivo di output interpreti 0Ah come una nuova riga e non richieda un CR (0Dh) che aggiungerebbe altri 4 byte al programma.