Zespół Z80 lub 8080, kod maszynowy 21 bajtów
Załóżmy, że urządzenie we / wy zamapowane w pamięci:
Z80 8080
3A xx xx ld a, (wejście) wejście lda; uzyskać znak wejściowy
11 0A 20 ld de, 200ah lxi d, 200ah; spacja i nowa linia
21 rrrr ld hl, wyjście lxi h, wyjście; uzyskać adres wyjściowy
77 ld (hl), mov m, a; znak wyjściowy * 3
77 ld (hl), mov m, a
77 ld (hl), mov m, a
73 ld (hl), e mov m, e; wyjście nowej linii
77 ld (hl), mov m, a; znak wyjściowy
72 ld (hl), d mov m, d; przestrzeń wyjściowa
77 ld (hl), mov m, a; znak wyjściowy
73 ld (hl), e mov m, e; wyjście nowej linii
77 ld (hl), mov m, a; znak wyjściowy * 3
77 ld (hl), mov m, a
77 ld (hl), mov m, a
76 halt hlt; lub C9 ret
Tłumacz nie jest potrzebny!
Hexdump:
0000: 3A 00 FF 11 0A 20 21 01 FF 77 77 77 73 77 72 77
0010: 73 77 77 77 76
gdzie adres wejściowy to FF00h, a adres wyjściowy jest odwzorowany na FF01h. Rzeczywiste adresy będą zależeć od faktycznego sprzętu. Oczywiście zakłada to, że operacje we / wy są mapowane w pamięci. Jeśli jest mapowany we / wy, zajęłoby to kilka dodatkowych bajtów, ponieważ instrukcje we / wy Z80 i 8080 mają po dwa bajty. Zakłada się również, że urządzenie wyjściowe interpretuje 0Ah jako nową linię i nie wymaga CR (0Dh), który dodałby dodatkowe 4 bajty do programu.