Anda di halaman 1dari 11

PROGRAM:1 BCD-BINARY CONVIRSION

START: LXI SP,STACK (say 2000H) LXI H,INBUF (say 3000H) LXI B,OUTBUF (say 4000h) MOV A,M CALL BCDBIN STAX B HLT BCDBIN: PUSH B PUSH D MOV B,A ANI 0Fh MOV C,A MOV A,B ANI F0h JZ BCD1 RRC RRC RRC RRC MOV D,A XRA A MVI E,0Ah SUM: ADD E DCR D JNZ SUM BCD1: ADD C POP d POP B RET

PROGRAM:2 BINARY- BCD CONVIRSION


START: LXI SP,STACK LXI H,BINBYT MOV A M CALL PWRTEN HLT PWRTEN: LXI H,OUTBUF MVI B 64H CALL BINBCD MVI B 0AH CALL BINBCD MOV M A RET BINBCD: MVI M,FFH NXTBUF: INR M SUB B JNC NXTBUF ADD B INX H RET (say 2000H) (say 3000H)

(say 4000H)

PROGRAM:3 BCD-TO-SEVEN-SEGMENT-LED CODE CONVIRSION


LXI SP,STACK LXI H,XX50H MVI D,03h CALL UNPAK HLT UNPAK: LXI B,BUFFER NXTBCD: MOV A,M ANI F0h RRC RRC RRC RRC CALL LEDCOD INX B MOV A,M ANI 0Fh CALL LEDCOD INX B INX H DCR D JNZ NXTBCD RET LEDCOD: PUSH H LXI H 2070h ADD L MOV L,A MOV A,M STAX B POP H RET (say 1000H) (where BCD digits are stored)

(say 2090H)

PROGRAM:4 BINARY-TO-ASCII CODE CONVIRSION


LXI SP,STACK LXI H,XX50h LXI D,XX60h MOV A,M MOV B,A RRC RRC RRC RRC CALL ASCII STAX D INX D MOV A B CALL ASCII STAX D HLT ASCII: ANI 0Fh CPI 0Ah JC CODE ADI 07h CODE: ADI 30h RET (say 1000H)

PROGRAM:5 ASCII-HEX TO BINARY CONVIRSION:


LXI SP,STACK LXI H,XX50H LXI D,XX60H MOV A,M MOV B,A RRC RRC RRC RRC CALL ASCBIN STAX D INX D MOV A,B CALL ASCBIN STAX D HLT ASCBIN: SUI 30h CPI 0Ah RC SUI 07h RET (say 1000H)

PROGRAM:6 BCD ADDITION


LXI LXI MVI XRA MOV SP,STACK H,XX50H C,COUNT A B,A (say 1000H)

NXTBCD: CALL BCDADD INX H DCR C JNZ NXTBCD LXI H,XX63H CALL UNPACK HLT BCDADD: ADD M DAA RNC MOV D,A MOV A,B ADI 01h DAA MOV B,A MOV A,D RET

UNPACK: MOV D,A ANI 0Fh MOV M,A DCX H MOV AD ANI F0h RRC RRC RRC RRC MOV M,A DCX H RET

PROGRAM:7 BCD SUBTRACTION


SUBBCD: SUB C INR A ADD B DAA RET MVI A,99h
(Find 99s compliment of subtrahend) (Find 100s compliment of subtrahend) (add minuend to 100s compliment of subtrahend)

PROGRAM:8
MULTIPLICATION
LXI SP,STACK LHLD XX50h XCHG CALL MLTPLY SHLD XX90h HLT
(Say 1000H) (XX50 in L register & XX51 in H register) (Multiplier in D & multiplicand in E) (Store product in xx90)

MLTPLY: MOV A,D MVI D,00H LXI H,0000H MVI B,08H NXTBIT: RAR JNC NOADD DAD D NOADD: XCHG DAD H XCHG DCR B JNZ NXTBIT RET NOTE: XCHG: Exchange the top of stack with HL SHLD: Store HL registers direct

PROGRAM:9 SUBTRACTION WITH CARRY


LXI D,4050H LXI H,4080H MVI B,05H
(Point index to reading)

(Point index to maximum limit) (Set up B as a counter)

NEXT: CALL SBTRAC INX D INX H DCR B JNZ NEXT HLT SBTRAC: MOV A,M XCHG SUB M MOV M,A XCHG INX H INX D MOV A,M XCHG SBB M CC INDIKET (Call MOV M,A RET

indicate subroutine if reading is than the maximum limit)

higher

NOTE:
CC INDIKET: Call indicate subroutine if reading is than the maximum limit higher

XCHG: Change the index pointer alternately between the set of readings & maximum limits

Anda mungkin juga menyukai