Beruflich Dokumente
Kultur Dokumente
bcd tobinary:
binary to bcd:
LXI H,0000H
MVI B,0AH
MVI C,00H
MOV A,M
S1: CMP B
JC SAVE
SUB B
INR C
JMP S1
SAVE: MOV B,A
MOV A,C
RLC
RLC
RLC
RLC
ORA B
STA 0006H
HLT
Number of 1's:
2000 MVI B 75 B ? 75
2002 MVI C 08 C ? 75
2004 MVI D 00 D ? 00
2006 MOV A, B A ? B
2007 RRC Rotate right without carry
2008 JNC 200C Jump if Not Carry
200B INR D D ? D+1
200C DCR C C ? C-1
200D JNZ 2007 Jump if Not Zero
2010 MOV A, D A ? D
2011 STA 3050 A ? 3050
2014 HLT Stops execution
hex to bcd:
LXI H,5000 ;Initialize memory pointer
MVI D,00 ;Clear D- reg for Most significant Byte
XRA A ;Clear Accumulator
MOV C,M ;Get HEX data
LOOP2: ADI 01 ;Count the number one by one
DAA ;Adjust for BCD count
JNC LOOP1
INR D
LOOP1: DCR C
JNZ LOOP2
STA 5001 ;Store the Least Significant Byte
MOV A,D
STA 5002 ;Store the Most Significant Byte
HLT
bcd to hex:
ascii to hex:
hex to ascii:
SUB1: CPI 0A
JC SKIP
ADI 07
SKIP: ADI 30
RET ;Return Subroutine
selection sort:
LXI H, 0060H
MVI B, 05H
LOOP1: MOV C, B
MOV D, H
MOV E, L
INR E
LOOP2: LDAX D
CMP M
JNC NO_SWP
SWAP: MOV D, M
MOV M, A
MOV A, D
MOV D, H
STAX D
NO_SWP: INR E
DCR C
JNZ LOOP2
INX H
DCR B
JNZ LOOP1
HLT
bubble sort:
binary search:
LXI H,0000H
MVI M,01
INX H
MVI M,02
INX H
MVI M,03
INX H
MVI M,04
INX H
MVI M,05
INX H
MVI M,06
INX H
MVI M,07
INX H
MVI M,08
MVI A,03
STA 0011H
LDA 0011H
MOV C,A
MVI A,0H
MVI B,7H
LXI H,0000H
fibo:
;MVI A,08H
;STA 0000H
LXI H,0000H
MOV C,M ;n>2
MVI A,00H
MVI D,01H ;Sum
MVI B,00H ;(n-2)th term
MVI E,01H ;(n-1)th term
DCR C
DCR C
loop: MOV A,B
ADD E
MOV E,A
SUB B
MOV B,A
MOV A,E
ADD D
MOV D,A
DCR C
JNZ loop
STA 0001H
hlt
linear search:
MVI A,0AH
STA 000H ;no. of elements
MVI A,07H
STA 001H
MVI A,04H
STA 002H
MVI A,06H
STA 003H
MVI A,03H
STA 004H
MVI A,08H
STA 005H
MVI A,01H
STA 006H
MVI A,00H
STA 007H
MVI A,09H
STA 008H
MVI A,05H
STA 009H
MVI A,02H
STA 00AH
MVI A,05H ;no. to be searched
STA 010H
MOV E,A ;element
LXI H,000H
MOV C,M ;count
INR C
INX H
loop: DCR C
JZ notfound
MOV A,M
INX H
CMP E
JNZ loop
MVI A,01H
STA 0011H
hlt
notfound: MVI A,00H
STA 0011H
hlt
prime:
LXI H,000H
MVI M,1DH
MOV A,M
MOV C,A
MOV E,A
MVI B,02H
div: MOV A,E
SUB B
MOV E,A
CMP B
JZ comp ;B is a factor of C
JNC div ;A is greater than B
MOV A,C
SUI 01H
CMP B
JZ prime ;B is equal to C-1
loop: INR B
MOV E,C
JMP div
MOV A,C
SUI 01H
CMP B
JNZ loop
prime: MVI A,01H
STA 0001H
HLT
comp: MVI A,00H
STA 0001H
HLT
;B=i C=num
prime series:
LXI H,0000H
MVI M,09H
MOV D,M
INX H
MVI C,02H
MVI E,01H
MVI B,02H
MVI A,02H
MOV M,A
INX H
DCR D
l1: INR C
MOV E,C
MVI B,02H
JMP div
div: MOV A,E
SUB B
MOV E,A
CMP B
JZ l1 ;B is a factor of C
JNC div ;A is greater than B
MOV A,C
SUI 01H
CMP B
JZ prime ;B is equal to C-1
loop: INR B
MOV E,C
JMP div
MOV A,C
SUI 01H
CMP B
JNZ loop
prime: MOV A,C
MOV M,A
INX H
DCR D
JNZ l1
HLT
factorial:
division :