Montagem Z80 ou 8080, código de máquina de 21 bytes
Suponha um dispositivo de E / S mapeado para memória:
Z80 8080
3A xx xx ld a, entrada lda (entrada); obter caractere de entrada
11 0A 20 ld de 200ah lxi d, 200ah; espaço e nova linha
21 aa aa aa ld hl, saída lxi h, saída; obter endereço de saída
77 ld (hl), a mov m, a; caractere de saída * 3
77 ld (hl), um mov m, um
77 ld (hl), um mov m, um
73 ld (hl), e mov m, e; nova linha de saída
77 ld (hl), a mov m, a; caractere de saída
72 ld (hl), d mov m, d; espaço de saída
77 ld (hl), a mov m, a; caractere de saída
73 ld (hl), e mov m, e; nova linha de saída
77 ld (hl), a mov m, a; caractere de saída * 3
77 ld (hl), um mov m, um
77 ld (hl), um mov m, um
76 hlt; ou C9 ret
Não é necessário nenhum intérprete!
Hexdump:
0000: 3A 00 FF 11 0A 20 21 01 FF 77 77 77 73 77 77 77 77
0010: 73 77 77 77 76
onde o endereço de entrada está em FF00h e o endereço de saída é mapeado em FF01h. Os endereços reais dependerão do hardware real. Obviamente, isso pressupõe que a E / S esteja mapeada na memória. Se for E / S mapeada, levaria vários bytes extras, porque as instruções de E / S Z80 e 8080 têm dois bytes cada. Isso também pressupõe que o dispositivo de saída interpreta 0Ah como uma nova linha e não requer um CR (0Dh) que adicionaria 4 bytes extras ao programa.