Z80 je na tom ve srovnání s 8051 po stránce ASM dobře. Na to, že železo odvozovalo z I8080.
- Je tam pár registrů navíc. Mimo A, B, C, D, E, H, L, (HL), [F], [SP], [PC] jsou tam i speciální registry I, R, IX a IY
- Je tam k dispozici souvislých 64kB pro RAM a ROM a 256B pro periferie (ty se dají hodit i do paměťovýho prostoru, když na věc přijde). Bez omezení RAM na 128B, bez nutnosti do dalších 128B přistupovat nepřímo, bez prohazování registrů pro indexování paměti, s větším zásobníkem,...
- Bonus v podobě dvou index registrů IX a IY pro adresování (instrukce je přičetla k A a použila jako adresu do RAMky): LD B, (IX + A) apod.
- Booleovský procesor pracuje jenom s registrama. Ale vzhledem k tomu, že osmý registr je (HL), tak v podstatě obsáhne v jedné 16b instrkci (0xcb, 0xněco) prostor 65 543B (samozřejmě za cenu dvou cyklů ext. sběrnice + 2B instrukce, ale je to rychlejší, než načtení do registru, tam kombinování s konstantou a vracení zpět).
- Dá se zrychlit přerušení a šetřit zásobník, místo několika PUSH a POP jde prostě použít EXX a EX AF
- Je tam o dost zajímavější systém přerušení, tabulka vektorů kdekoliv v RAMce s podporou I registru. Většinou se ale nevyužíval, u nás tam cpali klony I8059A :(
A rozdíl je v tom, že Z80 nemá na sobě periferky a ty si člověk namapoval podle sebe. Ne tak, aby nějakýmu ožralovi vybraný SFR vyšly na bitově adresovatelný místo.