Az alábbi 32 byte-os Hello World! program érdekessége, hogy DOS és CP/M alatt is fut.
Nézzük a programot CP/M alatt (Z-80 assembly):
0100 B4 OR H
0101 09 ADD HL,BC
0102 BA CP D
0103 0A LD A,(BC)
0104 01 CD 21 LD BC,21CD
0107 C3 17 01 JP 0117
010A "Hello World!$"
0117 0E 09 LD C,09
0119 11 0A 01 LD DE,010A
011C CD 05 00 CALL 0005
011F C9 RET
A program a 0x100 címre töltődik be. A program első felében (0x100–0x106) látszólag értelmetlen kód van. Majd a 0x107-es címen lévő utasítással átugorjuk a 0x10a–0x116 címen tárolt szöveget, és a 0x117-en végre elkezdődik a programunk. A C regiszterbe betöltjük a C_WRITESTR funkcióhívás kódját, a DE regiszterbe a szöveg címét, majd a CALL 5-tel meghívjuk magát a funkciót. Ezután a RET visszatér a CP/M-hez.
Nézzük ugyanezt a kódot x86 assembly-re!
0100 B4 09 MOV AH,09
0102 BA 0A 01 MOV DX,010A
0105 CD 21 INT 21
0107 C3 RET
0108 17 01
010A "Hello World!$"
Rögtön értelmet nyer a program elején lévő 7 byte, ami Z-80-on nem csinál semmi hasznosat. Az AH regiszterbe betöltjük a karakterstring írás függvénykódját (a kód ugyanaz, mint a CP/M-en), majd a a DX regiszterbe a string címét. Ezután 0x21 megszakítással meghívjuk az adott DOS-függvényt, végül a RET visszatér a DOS-hoz. A kód többi része (0x108–0x109 és 0x117–01xff) nem érdekes számunkra, hiszen soha nem fog lefutni.
Kis megjegyzés a 9-es DOS-függvényhez. Jól látható, hogy dollárjelet nem tudnánk írni ezzel a funkcióval, hiszen ez a string-lezáró karakter. Gary Kildal-nak, a CP/M tervezőjének volt a legendás mondása: "Ask Bill [Gates] why the string in [MS-DOS] function 9 is terminated by a dollar sign. Ask him, because he can't answer. Only I know that.".