Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 11

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

JNC LOOP1 JMP LOOP2 STA 4300 HLT

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

XRA A ADD B DCR E JNZ LOOP2 RET

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

LDA 5000 MOV D, A ANI 07

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

OUTPUT: 5000:14(OCTAL) 5100:0C (HEX)

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

OUTPUT DATA: CC O/P 4300:33(1S COMP) 4301:34(2S COMP)

You might also like