+ + + A S S E M B L E R - L I S T I N G + + +

OP-CODE:
2 = CCF - Loeschen Carry Flag
3 = SCF - Setzen  Carry Flag
4 = JPZ - Springe Zero  Flag 1 ist
5 = JPC - Springe Carry Flag 1 ist
8 = LD  - Datum an Speicher Adresse A laden
A = STO - A an Speicher Adresse schreiben
C = ADC - A = A+B+C, C und Z updaten
D = NOT - A negieren, Z updaten
F = RRC - A ueber C rechtsrotieren, C und Z updaten

PROGRAMM: Ein und Ausgabe Test Programm

IO-Unit:
Adr.	Reg.
FC	IO_0	LeseReg.
FD	IO_1	LeseReg.
FE	IO_2	SchreibeReg.
FF	IO_3	SchreibeReg.

START:		00	8	LD(FC)			von IO_0 in A lesen
		01	C				Adressbits 3..0
		02	F				Adressbits 7..4
		03	D	NOT			A invertieren
		04	F	RRC			Rechts rotieren, falls A(0)=1, wird Carry gesetzt
		05	5	JPC(L1)			zu Label L1 springen, wenn Carry gesetzt
		06	E				Adressbits 3..0
		07	0				Adressbits 7..4
		08	8	LD(FD)			von IO_1 in A lesen	
		09	D				Adressbits 3..0
		0A	F				Adressbits 7..4
		0B	A	STO(FE)			A auf IO_2 schreiben		
		0C	E				Adressbits 3..0
		0D	F				Adressbits 7..4
L1:		0E	F	RRC			Rechts rotieren, falls A(0)=1, wird Carry gesetzt
		0F	5	JPC(START)		zu Label START springen, wenn Carry gesetzt
		10	0				Adressbits 3..0
		11	0				Adressbits 7..4
		12	8	LD(FD)			von IO_1 in A lesen
		13	D				Adressbits 3..0
		14	F				Adressbits 7..4
		15	A	STO(FF)			A auf IO_3 schreiben
		16	F				Adressbits 3..0
		17	F				Adressbits 7..4
		18	3	SCF			Carry setzen fuer unbedingten Sprung		
		19	5	JPC(START)		wieder zu Start springen
		1A	0				Adressbits 3..0
		1B	0				Adressbits 7..4

PROGRAMM: 8 Bit Worte Addierer
START:		00	8	LD(A0)			von A0 in A lesen
		01	0				Adressbits 3..0
		02	A				Adressbits 7..4
		03	8	LD(A2)			von A2 in A lesen, A schiebt altes A auf B (Stack)
		04	2				Adressbits 3..0
		05	A				Adressbits 7..4
		06	2	CCF			Carry loeschen
		07	C	ADC			A+B+C
		08	A	STO(A4)			Ergebnis an A4 schreiben
		09	4				Adressbits 3..0
		0A	A				Adressbits 7..4

PROGRAMM: Verzoegerungsschleife
START:		00	8	LD(A1)			von A1 in A lesen (Konst. -1)
		01	1				Adressbits 3..0
		02	A				Adressbits 7..4
		03	8	LD(A0)			von A0 in A lesen (Parameter)
		04	0				Adressbits 3..0
		05	A				Adressbits 7..4
		06	D	NOT			A negieren
		07	D	NOT			A negieren
CHECK:		08	4	JPZ(ENDE)		Springe, wenn A = 0
		09	1				Adressbits 3..0
		0A	1				Adressbits 7..4
		0B	2	CCF			C=0
		0C	C	ADC			A+B
		0D	3	SCF			C=1
		0E	5	JPC(CHECK)		Springe, wenn C = 1
		0F	8				Adressbits 3..0
		10	0				Adressbits 7..4
ENDE:		11	.	...			...