Збірка Z80 або 8080, машинний код 21 байт
Припустимо пристрій, вбудований в пам'ять, зіставлений з пам'яттю:
Z80 8080
3A xx xx ld a, (вхід) lda вхід; отримати вхідний символ
11 0A 20 ld de, 200ah lxi d, 200ah; простір та новий рядок
21 yy yy ld hl, вихід lxi h, вихід; отримати вихідну адресу
77 ld (hl), mov m, a; вихідний символ * 3
77 лд (хл), мов м, а
77 лд (хл), мов м, а
73 ld (hl), e mov m, e; вихідний рядок
77 ld (hl), mov m, a; вихідний символ
72 ld (hl), d mov m, d; вихідний простір
77 ld (hl), mov m, a; вихідний символ
73 ld (hl), e mov m, e; вихідний рядок
77 ld (hl), mov m, a; вихідний символ * 3
77 лд (хл), мов м, а
77 лд (хл), мов м, а
76 halt hlt; або C9 ret
Не потрібен перекладач!
Hexdump:
0000: 3A 00 FF 11 0A 20 21 01 FF 77 77 77 73 77 72 77
0010: 73 77 77 77 76
де вхідна адреса - FF00h, а вихідна адреса відображена у FF01h. Фактичні адреси залежатимуть від фактичного обладнання. Звичайно, це передбачає, що введення / виведення відображено в пам'яті. Якщо це введення / виведення на карті, воно займе кілька зайвих байтів, оскільки інструкції з вводу / виводу Z80 та 8080 - це два байти. Це також передбачає, що пристрій виведення інтерпретує 0Ah як новий рядок і не вимагає CR (0Dh), який додав би додаткові 4 байти до програми.