blob: 164e0db55702541a998f3767f4184626a765a44b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
; ADD NUMBERS IN MEMORY 00H -> NEXT 00H BYTE, STORE RESULT IN C
JMP START
START: LXI H,00H ; HL AS MEMORY POINTER
MVI C,00H ; CLEAR C
MOV B,C ; CLEAR B
NEXT: MOV A,M ; SET ACCUMULATOR TO VALUE AT MEMORY ADDRESS
CPI 00H ; COMPARE ACCUMULATOR WITH 00H
JZ END ; JUMP IF ZERO
INX H ; INCREASE POINTER
JMP SAVE ; JUMP TO SAVE
SAVE: MOV B,A ; STORE ACCUMULATOR IN B
MOV A,C ; MOVE C INTO ACCUMULATOR
ADD B ; ADD B
MOV C,A ; STORE NEW ADDED VALUED IN B
MVI A,00H ; CLEAR ACCUMULATOR
MOV B,A ; CLEAR B
JMP NEXT ; NEXT BYTE
END: HLT ; HALT
|