//wir benutzen acht register.... DEFREG r0 = 0 DEFREG r1 = 1 DEFREG r2 = 2 DEFREG r3 = 3 DEFREG r4 = 4 DEFREG r5 = 5 DEFREG r6 = 6 DEFREG r7 = 7 //wir adressieren zwei Register mode-feld brauchen wir nicht.. DEFR2POS 0 DEFR1POS 3 DEFMODPOS 6 DEFOPCPOS 10 // Steuerbefehle DEFOPC nop = 0 0x0001 //NMO DEFOPC stop = 1 0x0001 //NMO DEFOPC jsr = 2 0x0002 //MA DEFOPC ret = 3 0x0001 //NMO getestet DEFOPC bra = 4 0x0002 //MA DEFOPC beq = 5 0x0002 //MA DEFOPC bgt = 6 0x0002 //MA DEFOPC blt = 7 0x0002 //MA DEFOPC boo = 8 0x0002 //MA DEFOPC boc = 9 0x0002 //MA // Arithmetische Befehle DEFOPC add = 16 0x0050 //MRR, MRLIT DEFOPC sub = 17 0x0050 //MRR, MRLIT DEFOPC multl = 18 0x0050 //MRR, MRLIT DEFOPC multh = 19 0x0050 //MRR, MRLIT DEFOPC div = 20 0x0050 //MRR, MRLIT DEFOPC mod = 21 0x0050 //MRR, MRLIT DEFOPC neg = 22 0x0050 //MRR, MRLIT DEFOPC comp = 23 0x0050 //MRR, MRLIT // Arithmetische Befehle DEFOPC not = 32 0x0050 //MRR, MRLIT DEFOPC and = 33 0x0050 //MRR, MRLIT DEFOPC or = 34 0x0050 //MRR, MRLIT DEFOPC xor = 37 0x0050 //MRR, MRLIT // Transferbefehle DEFOPC load = 48 0x0170 //MRRI, MRA, MRLIT DEFOPC store = 49 0x0100 //MRRI ORG 0 // nop load r7 STACK add r7 #STACK load r0 #0 // Speicher fuer Ergebnis load r1 #10 // Summieren bis n load r2 #1 // Ein zum subtrahieren jsr SUM stop SUM: add r0 r1 sub r1 r2 beq FINISH jsr SUM FINISH: ret STACK: FCW 10 FCW 0 FCW 0 FCW 0 FCW 0