Also du kannst den Code rein theoretisch auch so schreiben, es gibt eine Befehlsübersicht bei Atmel als PDF, wo auch die Codes bei stehen.
Den Programmspeicher direkt zuzugreifen ist nicht so einfach, du kannst aber glaube ich mit einem Programmieradapter den Programmspeicher auslesen, von hand manipulieren und zurück schreiben. Direkter geht es nicht, da die wenigsten Atmel über einen externen Programmspeicher/Speicherschnittstelle verfügen, wie du sie an dem Z80 scheinbar hast.
Naja, und ausserdem finde ich es teilweise fraglich, ob es wirklich sinnvoll ist. auf die Art braucht man viel länger um überhaupt gedanklich alles zu bauen, dann in hexcodes zu übersetzen, dafür gibt es ja die assembler mnemonics. Aber wir haben das auch auch in einer Vorlesung mal so gemacht, das war ein 8051 Kern, und hatte halt nen debugger, der direkt in den Programmspeicher geschrieben hat. Auch die Klausurfrage war an einer Stelle so, dass man den Code in Assembler übersetzten musste. Wenn man dann einmal einen Fehler bei der länge des Befehls gemacht hat, war der Rest zwar noch immer sinnvoll aber halt falsch.