Conjunto Z80 u 8080, código de máquina de 21 bytes
Suponga que un dispositivo de E / S mapeado en memoria:
Z80 8080
3A xx xx ld a, (entrada) entrada lda; obtener el carácter de entrada
11 0A 20 ld de, 200ah lxi d, 200ah; espacio y nueva línea
21 aa aa ld hl, salida lxi h, salida; obtener dirección de salida
77 ld (hl), a mov m, a; carácter de salida * 3
77 ld (hl), a mov m, a
77 ld (hl), a mov m, a
73 ld (hl), e mov m, e; salida nueva línea
77 ld (hl), a mov m, a; carácter de salida
72 ld (hl), d mov m, d; espacio de salida
77 ld (hl), a mov m, a; carácter de salida
73 ld (hl), e mov m, e; salida nueva línea
77 ld (hl), a mov m, a; carácter de salida * 3
77 ld (hl), a mov m, a
77 ld (hl), a mov m, a
76 alto alto; o C9 ret
¡No se necesita intérprete!
Hexdump:
0000: 3A 00 FF 11 0A 20 21 01 FF 77 77 77 73 77 72 77
0010: 73 77 77 77 76
donde la dirección de entrada está en FF00h y la dirección de salida está asignada en FF01h. Las direcciones reales dependerán del hardware real. Por supuesto, esto supone que la E / S está mapeada en memoria. Si se asigna E / S, tomaría varios bytes adicionales porque las instrucciones de E / S Z80 y 8080 son dos bytes cada una. Esto también supone que el dispositivo de salida interpreta 0Ah como una nueva línea y no requiere un CR (0Dh) que agregaría 4 bytes adicionales al programa.