; ; SUM INTEGERS USING WHILE-DO LOOP ; VERSION 2 ; ; REGISTER L IS THE NUMBER N ; REGISTER C IS THE SUM ; ORG 0x0000 ;PROGRAM START ADDRESS ; MVI L,5 ;5->N TEST VALUE=5. TEST SUM=0+1+2+3+4+5=15 INR L ;N+1->N MVI C,0 ;0->SUM ; AGAIN: DCR L ;IF N=0 THEN JUMP DONE JZ DONE MOV A,C ;SUM+N->SUM ADD L JC ERROR ;TRAP OVERFLOW MOV C,A JMP AGAIN ;LOOP TO AGAIN ; DONE: MOV A,C ;RETRIEVE SUM OUT 0xFF ;DISPLAY IN DATA LEDS HLT ;HALT ; ERROR: SUB A ;0->A OUT 0xFF ;DISPLAY IN DATA LEDS HLT ;HALT