;THIS PROJECT CREATED BY SYED DANISH AHMAD & MUHAMMAD USMAN
org 100h
;_______UNIQUE OUTPUT MACRO________
PRINT MACRO VAR
MOV AX,VAR
CALL OUTPUT
ENDM
;_________PRINT STRING MACRO______
MESSAGE MACRO STR
LEA DX,STR
MOV AH,9
INT 21H
ENDM
;________CASH WITHDRW MACRO______
WITHDRAW MACRO TOTAL_CASH,CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE B2
CALL NEW_LINE
MESSAGE S16
MOV CASH,0
MOV BL,10
INPUT:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX
JMP INPUT
TERMINATE:
MOV BX,0
MOV BX,TOTAL_CASH
SUB BX,CASH
MOV TOTAL_CASH,BX
ENDM
;________CASH DEPOSIT MACRO______
DEPOSIT MACRO TOTAL_CASH,CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE B3
CALL NEW_LINE
MESSAGE S16
MOV CASH,0
MOV BL,10
INPUT1:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE1
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX
JMP INPUT1
TERMINATE1:
MOV BX,0
MOV BX,TOTAL_CASH
ADD BX,CASH
MOV TOTAL_CASH,BX
ENDM
;__________TRANSFER AMOUNT MACRO_____
AMOUNT_TRANSFER MACRO TOTAL_CASH,CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE C4
CALL NEW_LINE
MESSAGE C5
MOV SI,OFFSET ACCOUNT_NO
INPUT_ACCOUNT_NO:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE TERMINATE2
INC SI
JMP INPUT_ACCOUNT_NO
TERMINATE2:
MESSAGE S16
MOV CASH,0
MOV BL,10
INPUT2:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE3
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX
JMP INPUT2
TERMINATE3:
MOV BX,0
MOV BX,TOTAL_CASH
SUB BX,CASH
MOV TOTAL_CASH,BX
ENDM
;__________BILL PAYMENT MACRO_____
PAYMENT_BILL MACRO TOTAL_CASH,CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE B5
CALL NEW_LINE
MESSAGE C8
MOV SI,OFFSET REF_NO
INPUT_REF_NO:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE TERMINATE4
INC SI
JMP INPUT_REF_NO
TERMINATE4:
CALL NEW_LINE
MESSAGE C6
MOV CASH,0
MOV BL,10
INPUT3:
MOV AH,1
INT 21H
CMP AL,13
JE TERMINATE5
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,CASH
MUL BL
ADD AX,CX
MOV CASH,AX
JMP INPUT3
TERMINATE5:
MOV BX,0
MOV BX,TOTAL_CASH
SUB BX,CASH
MOV TOTAL_CASH,BX
ENDM
.MODEL LARGE
.STACK 100H
.DATA
S1 DB 10,13," WELCOME TO ATM $"
S2 DB 10,13," 1: LOGIN $"
S3 DB 10,13," 2: CREATE ACCOUNT $"
S4 DB 10,13," ENTER CHOICE : $"
S5 DB 10,13," LOGIN $ "
S6 DB 10,13," CREATE NEW ACCOUNT $"
S7 DB 10,13," CONFORM PASSWORD NOT MATCH !!!$"
S8 DB 10,13," PLEASE ENTER !!! $"
S9 DB 10,13," WRONG CHOICE !!!$"
S10 DB 10,13," WRONG EMAIL !! LOGIN FAILED !! TARY AGAIN ANY KEY TO CONTINUE$"
S11 DB 10,13," WRONG PASSWORD !! LOGIN FAILED !! TRY AGAIN$"
S12 DB 10,13," ACCOUNT CREATED SUCCESSFULLY...PRESS ANY KEY TO CONTINUE$."
S13 DB 10,13," LOGIN SUCCESSFULLY...PRESS ANY KEY TO CONTINUE$."
S17 DB 10,13," PRESS 0: BACK $"
S14 DB 10,13," WELCOME TO $"
S15 DB 10,13," 3: EXIT$"
S16 DB 10,13," ENTER AMOUNT : $"
B1 DB 10,13," 1: BLANCE INQUARY $"
B2 DB 10,13," 2: CASH WITHDRAW $"
B3 DB 10,13," 3: CASH DEPOSIT $"
B4 DB 10,13," 4: TRANSFOR AMOUNT $"
B5 DB 10,13," 5: BILL PAYMENT $"
B6 DB 10,13," 6: LOGOUT $"
C1 DB 10,13," CASH WITHDRAW : $"
C2 DB 10,13," CASH DEPOSIT : $"
C3 DB 10,13," CURRENT AMOUNT : $"
C4 DB 10,13," TRANSFER AMOUNT : $"
C5 DB 10,13," ACCOUNT NO. : $"
C6 DB 10,13," BILL PAYMENT : $"
C8 DB 10,13," BILL REF NO. : $"
C7 DB 10,13," PRESS ANY KEY TO CONTINUE... $"
S_NAME DB 10,13," USERNAME : $"
S_PASS DB 10,13," PASSWORD : $"
S_CONFORM DB 10,13," CONFORM PASSWORD : $"
S_AMOUNT DB 10,13," DEPOSIT AMOUNT : $"
S_EMAIL DB 10,13," EMAIL : $"
LOAD DB "LOADING...$"
L_EMAIL DB 50 DUP("$")
L_PASSWORD DB 50 DUP("$")
USERNAME DB 50 DUP("$")
EMAIL DB 50 DUP("$")
AMOUNT DW ?
PASSWORD DB 50 DUP("$")
CONFORM DB 50 DUP("$")
ACCOUNT_NO DB 100 DUP("$")
REF_NO DB 100 DUP("$")
CHOICE DB ?
COUNT DW 0
COUNT1 DW 0
WITHDRAW_CASH DW ?
DEPOSIT_CASH DW ?
TRANSFER_CASH DW ?
PAYMENT DW ?
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
CALL LOADING
START:
CALL CLEAR_SCREEN
MESSAGE S1
CALL NEW_LINE
MESSAGE S2
CALL NEW_LINE
MESSAGE S3
CALL NEW_LINE
MESSAGE S15
CALL NEW_LINE
COICE_DISPLAY:
CALL SELECT_CHOICE
CMP CHOICE,1
JE LOGIN_F
CMP CHOICE,2
JE CREATE_NEW_F
CMP CHOICE,3
JE EXIT
JNE AGAIN
AGAIN:
MESSAGE S9
JMP COICE_DISPLAY
LOGIN_F:
CALL LOGIN
CREATE_NEW_F:
CALL CREATE_NEW
MENU:
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S14
MESSAGE USERNAME
CALL MAIN_MENU
RELOAD:
CALL SELECT_CHOICE
CMP CHOICE,1
JE BLANCE_INQUARY
CMP CHOICE,2
JE CASH_WITHDRAW
CMP CHOICE,3
JE CASH_DEPOSIT
CMP CHOICE,4
JE TRANSFOR_AMOUNT
CMP CHOICE,5
JE BILL_PAYMENT
CMP CHOICE,6
JE LOGOUT
JNE WRONG_SELECT
WRONG_SELECT:
CALL NEW_LINE
MESSAGE S9
JMP RELOAD
BLANCE_INQUARY:
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE B1
PRINT AMOUNT
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD
CASH_WITHDRAW:
WITHDRAW AMOUNT,WITHDRAW_CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C1
PRINT WITHDRAW_CASH
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD
CASH_DEPOSIT:
DEPOSIT AMOUNT,DEPOSIT_CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C2
PRINT DEPOSIT_CASH
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD
TRANSFOR_AMOUNT:
AMOUNT_TRANSFER AMOUNT,TRANSFER_CASH
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C5
MESSAGE ACCOUNT_NO
CALL NEW_LINE
MESSAGE C4
PRINT TRANSFER_CASH
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD
BILL_PAYMENT:
PAYMENT_BILL AMOUNT,PAYMENT
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S_NAME
MESSAGE USERNAME
CALL NEW_LINE
MESSAGE C8
MESSAGE REF_NO
CALL NEW_LINE
MESSAGE C6
PRINT PAYMENT
CALL NEW_LINE
MESSAGE C3
PRINT AMOUNT
CALL NEW_LINE
MESSAGE C7
MOV AH,1
INT 21H
CALL CLEAR_SCREEN
CALL MAIN_MENU
JMP RELOAD
LOGOUT:
JMP START
EXIT:
MOV AH,4CH
INT 21H
RET
MAIN ENDP
;______LOADING PROC______
LOADING PROC
CALL CLEAR_SCREEN
MOV AH,06H
MOV AL,10H
MOV CH,12 ;UPPER ROW
MOV CL,25 ;LEFT COLUMN
MOV DH,12 ;BOTTOM ROW
MOV DL,44 ;RIGHT COLUMN
MOV BH,11110010B
INT 10H
MOV AH,2H
MOV BH,0
MOV DH,10
MOV DL,31
INT 10H
MESSAGE LOAD
MOV AH,2H
MOV BH,0
MOV DH,12 ;ROW
MOV DL,25 ;COLUMN
INT 10H
MOV CX,20
L:
PUSH CX
MOV AL,219
MOV DL,AL
MOV AH,2
INT 21H
MOV CX, 5
MOV AH, 86H
INT 15H
POP CX
LOOP L
RET
LOADING ENDP
;_______CLEAR SECREEN PROC_______
CLEAR_SCREEN PROC
;---GET CURRENT VIDEO MODE---
MOV AH, 0FH
INT 10H
;---SET VIDEO MODE---
MOV AH, 0
INT 10H
MOV AH,6
MOV AL,0
MOV CL,0
MOV CH,0
MOV DL,79
MOV DH,24
MOV BH,00011111B
INT 10H
RET
CLEAR_SCREEN ENDP
;________NEW LINE PROC________
NEW_LINE PROC
MOV DL,10
MOV AH,2
INT 21H
MOV DL,13
MOV AH,2
INT 21H
RET
NEW_LINE ENDP
;_______MAIN MENU PROC________
MAIN_MENU PROC
CALL NEW_LINE
MESSAGE B1
CALL NEW_LINE
MESSAGE B2
CALL NEW_LINE
MESSAGE B3
CALL NEW_LINE
MESSAGE B4
CALL NEW_LINE
MESSAGE B5
CALL NEW_LINE
MESSAGE B6
CALL NEW_LINE
RET
MAIN_MENU ENDP
;_________SELECT CHOICE PROC_____
SELECT_CHOICE PROC
CALL NEW_LINE
MESSAGE S4
MOV AH,1
INT 21H
SUB AL,48
MOV CHOICE,AL
RET
SELECT_CHOICE ENDP
;_________LOGIN PROC__________
LOGIN PROC
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S5
CALL NEW_LINE
MESSAGE S_EMAIL
MOV SI,OFFSET L_EMAIL
INPUTL_EMAIL:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE NEXT
INC SI
JMP INPUTL_EMAIL
NEXT:
CALL NEW_LINE
MESSAGE S_PASS
MOV SI,OFFSET L_PASSWORD
INPUTL_PASSWORD:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE NEXT1
INC SI
JMP INPUTL_PASSWORD
NEXT1:
MOV SI,OFFSET L_EMAIL
MOV DI,OFFSET EMAIL
MOV CX,COUNT1
CHECK_EMAIL:
MOV BL,[SI]
CMP BL,[DI]
JNE WRONG_EMAIL
INC SI
INC DI
LOOP CHECK_EMAIL
MOV SI,OFFSET L_PASSWORD
MOV DI,OFFSET PASSWORD
MOV CX,COUNT
CHECK_PASS:
MOV BL,[SI]
CMP BL,[DI]
JNE WRONG_PASS
INC SI
INC DI
LOOP CHECK_PASS
CALL NEW_LINE
MESSAGE S13
MOV AH,1
INT 21H
JMP MENU
RET
WRONG_EMAIL:
CALL NEW_LINE
MESSAGE S10
CALL NEW_LINE
MESSAGE S17
MOV AH,1
INT 21H
SUB AL,48
CMP AL,0
JZ START
CALL LOGIN
RET
WRONG_PASS:
CALL NEW_LINE
MESSAGE S11
CALL NEW_LINE
MESSAGE S17
MOV AH,1
INT 21H
SUB AL,48
CMP AL,0
JZ START
CALL LOGIN
RET
LOGIN ENDP
;_______CREATE NEW ACCOUNT PROC______
CREATE_NEW PROC
CALL CLEAR_SCREEN
CALL NEW_LINE
MESSAGE S6
CALL NEW_LINE
MESSAGE S_NAME
MOV SI,OFFSET USERNAME
INPUT_USERNAME:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE NEXT2
INC SI
JMP INPUT_USERNAME
NEXT2:
CALL NEW_LINE
MESSAGE S_EMAIL
MOV SI,OFFSET EMAIL
INPUT_EMAIL:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE NEXT3
INC COUNT1
INC SI
JMP INPUT_EMAIL
NEXT3:
CALL NEW_LINE
MESSAGE S_AMOUNT
MOV AMOUNT,0
MOV BL,10
INPUT_AMOUNT:
MOV AH,1
INT 21H
CMP AL,13
JE NEXT4
SUB AL,30H
MOV AH,0
MOV CX,AX
MOV AX,AMOUNT
MUL BL
ADD AX,CX
MOV AMOUNT,AX
JMP INPUT_AMOUNT
NEXT4:
CALL NEW_LINE
MESSAGE S_PASS
MOV SI,OFFSET PASSWORD
INPUT_PASSWORD:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE NEXT5
INC SI
INC COUNT
JMP INPUT_PASSWORD
CORRECT:
MESSAGE S7
NEXT5:
CALL NEW_LINE
MESSAGE S_CONFORM
MOV SI,OFFSET CONFORM
INPUT_CONFORM:
MOV AH,1
INT 21H
MOV [SI],AL
CMP [SI],13
JE NEXT6
INC SI
JMP INPUT_CONFORM
NEXT6:
MOV SI,OFFSET PASSWORD
MOV DI,OFFSET CONFORM
MOV CX,COUNT
CHECK:
MOV BL,[SI]
CMP BL,[DI]
JNE CORRECT
INC SI
INC DI
LOOP CHECK
CALL NEW_LINE
MESSAGE S12
MOV AH,1
INT 21H
CALL LOGIN
RET
CREATE_NEW ENDP
;_______OUTPUT PROC_______
OUTPUT PROC
MOV DX,0
MOV BX,10
MOV CX,0
L1:
DIV BX
PUSH DX
MOV DX,0
INC CX
CMP AX,0
JNE L1
MOV AH,2
L2:
POP DX
ADD DX,48
INT 21h
LOOP L2
RET
OUTPUT ENDP
END MAIN

Contact Details for Assembly Projects
If you want any Project then contact our Customer support
Email: support@wsptech.pk
Mobile no: +92 304 5180559
You can contact any time on Mobile Number.