8085 Programs
8085 Programs
8085 Programs
1.18-BIT ADDITION MVI B, DATA1 MVI C, DATA2 MVI D, 00 MOV A, B ADD C JNC LOOP INR D STA 5000 MOV A, D STA 5001 HLT 1.2 8.BIT SUBTRACTION MVI B, DATA1 MVI C, DATA2 MVI D, 00 MOV A, B SUB C JNC LOOP INR D STA 5000 MOV A, D STA 5001 HLT 1.3 8-BIT MULTIPLICATIONS MVI A, 00 MVI B, 05 MVI C, 04 MVI D, 00 ADD B JNC LOOP1 INR D DCR C JNZ LOOP2 STA 4500 MOV A, D STA 4501 HLT
LOOP
LOOP
LOOP 2 LOOP1
1.4.8-BIT DIVISION MVI A, 08 MVI B, 04 MVI C, 00 CMP B JC LOOP1 SUB B INR C JMP LOOP2 STA 4501 MOV A, C STA 4500 HLT
LOOP2
LOOP 1
2.1 16.BIT ADDITION LXI H, DATA 1 LXI B, DATA2 XRA A DAD B JNC LOOP INR A SHLD 5000 STA 5002 HLT
LOOP
2.2 16.BIT SUBTRACTION LXI H, DATA 1 LXI B, DATA2 XRA A DSUB B JNC LOOP INR A SHLD 5000 STA 5002 HLT
LOOP
2.3 16-BIT MULTIPLICATIONS LXI B, DATA 1 LXI D, DATA2 LXI H, 0000 DAD B DCX D
LOOP
MOV A, E ORA D JNZ LOOP SHLD 5000 HLT 2.4 16-BIT DIVISIONS LXI H, DATA 1 LXI B, DATA2 LXI D, 0000 INX D DSUB B JNC LOOP DAD B SHLD 5000 DCX D XCHG SHLD 5002 HLT
LOOP
3.1 SORTING THE NUMBERS IN ASCENDING ORDER LOOP 2 LOOP 1 MVI B, 5 LXI H,5000 MOV C, B MOV A, M INX H CMP M JC LOOP MOV D, M MOV M, A DCX H MOV M, D INX H DCR C JNC LOOP1 DCR B JNZ LOOP2 HLT
LOOP
3.2 SORTING THE NUMBERS IN DESCENDING ORDER LOOP 2 LOOP 1 MVI B, 5 LXI H, 5000 MOV C, B MOV A, M INX H CMP M JNC LOOP MOV D, M MOV M, A DCX H MOV M, D INX H DCR C JNC LOOP1 DCR B JNZ LOOP2 HLT
LOOP
4.1. SEARCHING LARGEST NUMBER LXI H, 5000 MOV B, O5 MOV A, M DCR B JZ LOOP INX H CMP M JC LOOP1 JMP LOOP2 STA 4300 HLT
LOOP 1 LOOP 2
LOOP
4.2. SEARCHING SMALLEST NUMBER LXI H, 5000 MOV B, O5 MOV A, M DCR B JZ LOOP INX H CMP M
LOOP 1 LOOP 2
LOOP
5. ADDTION OF N-ELEMENTS IN AN ARRAY LXI H, 5000 MVI B, 05 MVI D, 00 MOV A, M INX H ADD M CC COUNT (CALL ON CARRY) DCR B JNZ LOOP STA 5100 MOV A, D STA 5101 HLT INR D RET
LOOP
COUNT
6. SUM OF FIRST N- NATURAL NUMBERS XRA A (CLEAR A REG) MVI B, 05 MVI C, 01 ADD C INR C DCR B JNZ LOOP STA 5000 HLT
LOOP
7. SUM OF FIRST N- ODD NUMBERS XRA A MVI B, 05 MVI C, 01 ADD C INR C INR C
LOOP
DCR B JNZ LOOP STA 5000 HLT 8 .SUMS OF SQUARES OF FIRST N- NATURAL NUMBERS XRA A MOV B, 05(N) MOV C, 01 MVI E, 00 CALL MULT (CALL MULT SUBROUTINE) ADD E MOV E, A INR C DCR B JNZ LOOP STA 5000 HLT XRA A MOV D, C ADD C DCR D JNC LOOP1 RET
LOOP
MULT LOOP1
9. SUM OF SERIES OF FACTPRIAL OF FIRST N-NUMBERS MVI B, 01 MVI H, 05(N) MVI D, 00 MVI C, 00 INR C MOV E, C MOV L, H CNZ MULT (CALL MULT ON NON ZERO) MOV B, A ADD D MOV D, A DCR H JNZ LOOP1 MOV A, D STA 5000 HLT
LOOP1
MULT LOOP2
10. FINDING SQUARE OF A NUMBER LDA 5000 MOV B, A MOV C, A XRA A ADD B DCR C JNZ LOOP1 STA 5100 HLT
LOOP1
11. PARITY CHECKING CONCEPT: 1. The no. of elements is entered in to specific register 2. The numbers are entered in the specific location 3. Accumulator and two more register are cleared. 4. On the occurrence of add parity, one of the cleared register is incremented. 5. On even parity, the other registers are incremented. 6. Each time the value of logic N is incremented. 7. Above 3 steps are repeated until N becomes 0. 8. Results are stored in corresponding locations 9. End the program
LOOP 3
LOOP 1 LOOP 2
MVI B, 05(N) LXI H, 4500 MVI C, 00 MVI D, 00 XRA A ADD M JPE LOOP1 (JUMP IF PARITY IS EVEN) INR D JMP LOOP2 INR C INR H DCR B
JNZ LOOP3 MOV A, C STA 5000 MOV A, D STA 5001 HLT 12. TRANSERING BLOCK OF DATA CONCEPT 1. The elements to be transferred are entered to the initial location. 2. The location to which the block of data is to be transferred in specified register. 3. The number of elements is enterer in to the specified location. 4. Move the first element to accumulator and store it in the required location. 5. The other elements are transferred by incrementing SP and on each incrementation the number of elements is decremented until zero. 6. End the program LXI H, 4500 LXI D, 5000 MVI C, 05(N) MOV A, M STAX D INX H INX D DCR C JNZ LOOP HLT
LOOP
13.1 CONVERSION OF BCD TO HEX LDA 4500 MOV D, A ANI 07 MOV C, A MOV A, D ANI FO RRC (ROTATE RIGHT ON CARRY) RRC RRC RRC MOV B, A XRA A MVI E, 0A ADD B DCR E
LOOP1
JNZ LOOP1 ADD C STA 5000 HLT 13.2 CONVERSION OF TO HEX TO BINARY CONCEPT: 1. Initialize counter 1 to store the output and counter 2 to store a multiplier 8. 2. Get the number. Rotate the number to the left by one bit. 3. If carry is not set, go to step 4. if carry is set , store output as 01 and go to step 4 and store output as 00. 4. Get the memory location for incrementing counter 1 and decrementing counter2. 5. If zero is not set then go to step 2. 6. If zero is set then end the program. LXI H, 5000 MVI D, 08 LDA 5100 RAL (ROTATE LEFT ON CARRY) JNC LOOP MVI M, 01 JMP LOOP2 MVI M, 00 INX H DCR D JNZ LOOP1 HLT
LOOP1
LOOP LOOP2
13.3 CONVERSION OF OCTAL TO HEXADECIMAL CONCEPT: 1. Mask the upper nibble and store the result number as BCD1. Get the number again. 2. Mask the lower nibble, exchange the nibble positions of result and store it as BCD2. 3. Multiply BCD1 and store the result 4. Stop the program
LOOP
MOV C, A MOV A, D ANI 70 RRC RRC RRC RRC MOV B, H MVI E, 08 XRA A ADD B DCR E JNZ LOOP ADD C STA 5100 HLT
8086 PROGRAMS
1. SORTING TH NUMBERS IN ASCENDING ORDER MOV DX, 05 DEC DX (DECREMENT DX REG) L1 MOV CX, DX MOV SI, 3000 L2 MOV AL, [SI] CMP [SI+01], AL (COMPARE AL WIT [SI+01]) JNC L3 MOV BL, [SI+01] MOV [SI+01], AL MOV [SI], BL L3 INC SI LOOP L2 (LOOP TO ADDRESS) DEC DX JNZ L1 HLT 2. FINDING BIGGEST NUMBER MOV CX, 0005(MOVE 05 TO CX REG. PAIR)
LOOP1 LOOP2
LOOP3
MOV SI, 2000 MOV AL, [SI] DEC CX JZ LOOP 3 INC SI CMP AL, [SI] JC LOOP1 LOOP LOOP2 (LOOP TO ADDRESS) MOV [3000], AL HLT
3. ADDITION OF N-ELEMENTS IN AN ARRAY MOV AX, 0000(CLEAR AX) MOV CX, 0005 MOV SI, 2000 ADD AX, [SI] INX SI DEC CX JNZ L1 MOV [4000], AX HLT
L1
8051 programs
1.1s and 2s complement MOV A, #CC CPL A (COMPLEMENT A REGISTER) MOV DPTR, #4300(MOVE 4300 TO DPTR) MOVX@DPTR, A (MOVE A REG VL AT DPTR) INC DPTR INC A MOVX@DPTR, A (MOVE A REG VAL AT DPTR) SJMP HERE
HERE