1.  Write an assembly program to add two numbers Program MVI D, 8BH MVI C, 6FH MOV A, C 1100 0011

1000 0101

0010 0000

ADD D OUT PORT1 HLT

2. Write an assembly program to multiply a number by 8 Program MVI A, 30H

RRC RRC RRC

OUT PORT1 HLT

3.  Write an assembly program to find greatest between two numbers Program MVI B, 30H

MVI C, 40H MOV A, B CMP C

JZ EQU JC GRT

OUT PORT1 HLT

EQU: MVI A, 01H OUT PORT1

HLT

GRT: MOV A, C OUT PORT1 HLT

Programming using Loop structure with Counting and Indexing


16 bit Multiplication

ADDRESS LABEL MNEMONICS OPCODE START

L1 L2

LHLD 4200 SPHL LHLD 4202 XCHG

LXI H,0000 LXI B,0000 DAD SP JNC L2 INX B DCX D MOV A,E ORA D JNZ L1 SHLD 4204 MOV L,C MOV H,B

SHLD 4206 HLT

Finding the maximum number in the given array

ADDRESS LABEL MNEMONICS OPCODE START

L2 L3 L1

LDA 4500 MOV C, A LXI H, 4501 MOV A, M DCR C INX H

JZ L1 CMP M JC L2 JMP L3 STA 4520 HLT

To sort the array of data in ascending order ADDRESS

LABEL MNEMONICS START

L3 L2 L1

MVI B, 00

LXI H, 4200 MOV C, M DCR C

INX H MOV A, M INX H CMP M

JC L1 MOV D, M MOV M, A DCX H MOV M, D INX H MVI B, 01 DCR C JNZ L2 DCR B

JZ L3 HLT

Programming using subroutine Instructions Generation of Square waveform using DAC ADDRESS

LABEL MNEMONICS START DELAY

L2 L1

MVI A,00H OUT C8 CALL DELAY

MVI A,FF OUT C8 CALL DELAY JMP START MVI B,05H MVI C,FF DCR C

JNZ L1 DCR B JNL L2 RET

Programming using Look up table

ADDRESS LABEL MNEMONICS OPCODE START L2

MVI B,08

MVI A,00(DISPLAY MODE SETUP) OUT C2 MVI A,CC(CLEAR DISPLAY) OUT C2

MVI A,90(WRITE DISPLAY RAM)

OUT C2

MVI A, FF(CLEAR DISPLAY RAM)

OUT C0 DCR B JNZ L1 IN C2 ANI 07 JZ L2

MVI A, 40(SET TO READ FIFO RAM)

OUT C2 IN C0 ANI 0F MOV L, A MVI H, 42

MOV A, M OUT C0 JMP L2

LOOKUP TABLE

4200 0C 9F 4A 0B

4204 99 29 28 8F

4208 08 09 88 38

420C 6C 1A 68 E8