Académique Documents
Professionnel Documents
Culture Documents
------DOUBLE A NUMBER------
;double.85
;double a number
lda 0 ;A=M[0]
mov b,a ;copy to B
add b ;A=A+B
sta 0
hlt
-------IF EXAMBLE------
;if.85
;if x+y==0 then M[2]=0 else M[2]=1
lda 0 ;load x
mov b,a ;B=x
lda 1 ;load y
add b ;A=x+y
jnz Else ;if x+y!=0 jump
Then: mvi a,0
jmp Endif ;skip over Else part
Else: mvi a,1
Endif: sta 2
hlt
------LOOP X TIMES----
;loop_x_times.85
lda 0 ;load x
Loop: dcr a ;A--
jnz loop ;goto Loop if x!=0
hlt
------Sum M to N -------
;sum of integers from M to N, inclusive
;looping M-N+1 from M thru N
; for i=M to N
; sum += i
;N in B
;i in C, starts with M
;sum in D, starts with M
lda 0 ;get M
mov c,a ;C is i=M
mov d,a ;D is sum=M
lda 1 ;get N
mov b,a ;B is N
loop: inr c ;i++
mov a,d ;sum to A
add c ;A=sum(A) + i
mov d,a ;new sum back to D
mov a,c ;i to A
cmp b ;A-B ie. i-N
jnz loop ;goto loop if i!=N
mov a,d ;sum to A
sta 2
hlt