Store 8-bit data in memory Subtract two 8-bit numbers Find 1’s complement Right shift within 8bit
t shift within 8bit Reg
MVI A, 52H LXI H, 2000H LDA 2200H MOV A, C STA 2000H MOV A, M CMA RAR HLT INX H STA 2300H RAR SUB M HLT RAR LXI H, 2000H INX H RAR MVI M, 52H MOV M, A Find 2’s complement MOV C, A HLT HLT LDA 2200H HLT CMA Exchange 8bit numbers Add two 16-bit numbers ADI 01H Right shift within 16bit Reg LDA 2050H LHLD 2000H STA 2300H MOV A,B MOV B, A XCHG HLT RAR LDA 2051H LHLD 2002H MOV B, A STA 2051H MOV A, E Pack 2 unpacked BCD number MOV A, C MOV B, A ADD L 2200H = 04, 2201 = 09 RAR STA 2052H MOV L, A LDA 2201H MOV C, A HLT MOV A, D RLC HLT ADC H RLC Exchange 16 bit numbers MOV H, A RLC Find 2’s complement of 16bit MOV H, B SHLD 2004H RLC LDA 2200H MOV L, C HLT ANI F0H CMA MOV B, D MOV C, A ADI 01H MOV C, E LHLD 2000H LDA 2200H STA 4000H MOV D, H XCHG ADD C LDA 2201H MOV E, L LHLD 2002H STA 2300H CMA HLT DAD D ; Add DE & HL HLT ACI 00H SHLD 2004H STA 4001H MOV H, B HLT Unpack the BCD number HLT MOV L, C LDA 2200H XCHG Subtract two 16-bit numbers ANI F0H Sum of series of numbers MOV B, H LHLD 2000H RRC LXI H, 2200H MOV C, L XCHG RRC MOV C, M HLT LHLD 2002H RRC INX H MOV A, E RRC BACK : ADD M Add two 8-bit numbers SUB L STA 2301H JNC SKIP LXI H, 2000H MOV L, A LDA 2200H INR B MOV A, M MOV A, D ANI 0FH SKIP : INX H INX H SBB H STA 2201H DCR C ADD M MOV H, A HLT JNZ BACK INX H SHLD 2004H STA 2300H MOV M, A HLT Leftshift 16bit within 16bit Rg MOV A, B HLT DAD H STA 2301H HLT Data transfer Find the largest of given Sum of series of even nos Count times repeated : 02h MVI C, 0AH LDA 2200H LDA 2200H LXI H, 2000H LXI H, 2200H MOV C, A MOV C, A MVI B, 14H LXI D, 2300H XRA A MVI B, 00H MVI C, 00H BACK : MOV A, M LXI H, 2201H LXI H, 2201H BACK: MOV A, M STAX D BACK: CMP M BACK: MOV A, M CPI 02H INX H JNC SKIP ANI 01H JNZ NEXT INX D MOV A, M JNZ SKIP INR C DCR C SKIP: INX H MOV A, B NEXT: INX H JNZ BACK DCR C ADD M DCR B HLT JNZ BACK MOV B, A JNZ BACK STA 2300H SKIP: INX H HLT Multiply two 8-bit numbers HLT DCR C MVI E, 03H JNZ BACK Separate EVEN & ODD MVI C, B2H Arrange in ascending order STA 2201H LXI H 2000H LOOP : ADD C MVI B, 09H HLT LXI D 2100H JNC SKIP START: LXI H, 2200H LXI B 2200H INR B MVI C, 09H Search a byte in given nums MVI A 0AH SKIP : DCR E BACK: MOV A, M (Byte is in C register) COUNTER: STA 3000H JNZ LOOP INX H LXI H, 2000H MOV A M STA 0000H CMP M MVI B, 09H ANI 01H MOV A, B JC SKIP; less no chng BACK: MOV A, M JNZ CARRY STA 0001H (JNC SKIP - descend) CMP C MOV A M HLT JZ SKIP; equal JZ LAST STAX B MOV D, M INX H INX B Find negative numbers MOV M, A DCR B JMP JUMP LDA 2200H DCX H JNZ BACK CARRY: MOV A M ; This block MOV C, A MOV M, D LXI H, 0000H will store Odd numbers. MVI B, 00H INX H SHLD 2200H STAX D LXI H, 2201H SKIP: DCR C JMP END INX D BACK : MOV A, M JNZ BACK LAST: SHLD 2200H JUMP: LDA 3000H ANI 80H DCR B END: HLT DCR A JZ SKIP JNZ START Fibonacci INX H INR B HLT MVI D, COUNT JNZ COUNTER SKIP : INX H MVI B, 00H HLT DCR C MVI C, 00H JNZ BACK BACK: MOV A, B MOV A, B ADD C STA 2300H MOV B, C HLT MOV C, A DCR D JNZ BACK HLT Pos, Neg, Zero count Binary to BCD LXI H, 3000H LDA 2200H MVI C, 0AH MOV B, A MVI B, 00H ANI 0FH MVI D, 00H MOV C, A MVI E, 00H MOV A, B ANI F0H ZERO: MOV A, M RRC CPI 00H RRC JNZ NEXT RRC INR B RRC JMP LAST MOV B, A XRA A NEG: ANI 80H MVI D, 0AH JZ POS SUM: ADD D INR E DCR B JMP LAST JNZ SUM ADD C POS: INR D STA 2300H LAST: INX H HLT DCR C JNZ ZERO Binary to BCD
MOV A, D STA 3050H MOV E, A STA 3051H MOV A, B STA 3052H HLT
Delay of 0.4s , f = 5MHz
operating f = 5 / 2 = 2.5MHz One T-state = 1/2.5 = 0.4μs Required = 0.4 / 0.4μ = 106s 106 = 10 + (count - 1) 24 + 21 count = 41666 = A2C2H LXI B, A2C2H BACK: DCX B MOV A, C ORA B JNZ BACK HLT
XXIVth International Congress of Pure and Applied Chemistry: Plenary and Main Section Lectures Presented at Hamburg, Federal Republic of Germany, 2–8 September 1973