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