.MODEL large
.STACK
.DATA
MESSAGE DB 'HELLO,WORLD',"$"
STRLIST LABEL BYTE ;
MAX DB 20 ;HAD AKSAR TOLE LIST
LEN DB ? ;TEDAD VAGHEY CARACTER KHANDE SHODE
BUFFER DB 20 DUP(' ') ;MAHAL HAFEZE KE CARACTER VORODY ZAKHIRE MISHAVAD
DOLAR DB '$' ;ENTEHAY RESHTE MOSHAKHAS MISHAVAD
HELP DB ?
line1 DB 'DANESHGAH AZAD ESLAMI VAHED E LARESTAN',"$"
line2 DB 'mohammad hossein',"$"
line3 DB 'abrari',"$"
line4 DB 'enter number :',"$"
N0 DB '0',"$"
N1 DB '1',"$"
N2 DB '2',"$"
N3 DB '3',"$"
N4 DB '4',"$"
N5 DB '5',"$"
N6 DB '6',"6"
N7 DB '7',"$"
N8 DB '8',"$"
N9 DB '9',"$"
M0 DB 'ziro ',"$"
M1 DB 'one ',"$"
M2 DB 'two ',"$"
M3 DB 'three ',"$"
M4 DB 'four ',"$"
M5 DB 'five ',"$"
M6 DB 'six ',"$"
M7 DB 'seven ',"$"
M8 DB 'eight ',"$"
M9 DB 'nine ',"$"
M10 DB 'ten ',"$"
M11 DB 'eleven ',"$"
M12 DB 'twelve ',"$"
M13 DB 'thirteen ',"$"
M14 DB 'fourteen ',"$"
M15 DB 'fifteen ',"$"
M16 DB 'sixteen ',"$"
M17 DB 'seventeen ',"$"
M18 DB 'eighteen ',"$"
M19 DB 'ninteen ',"$"
M20 DB 'twenty ',"$"
M30 DB 'thirty ',"$"
M40 DB 'fourty ',"$"
M50 DB 'fifty ',"$"
M60 DB 'sixty ',"$"
M70 DB 'seventy ',"$"
M80 DB 'eighty ',"$"
M90 DB 'ninty ',"$"
M100 DB 'hundred ',"$"
M200 DB 'two_hundred ',"$"
M300 DB 'three_hunderd ',"$"
M400 DB 'four_hundred ',"$"
M500 DB 'five_hundrred ',"$"
M600 DB 'six_hundred ',"$"
M700 DB 'seven_hundred ',"$"
M800 DB 'eight_hundred ',"$"
M900 DB 'nine_hundred ',"$"
.CODE
MAIN PROC
MOV AX,@DATA
MOV DS,AX
mov ah,00h
mov al,03h ;mode video 80*25 standard color text
int 10h
;***********************PAKE KARDAN SAFHE - loop-massage
lop: MOV AH,6H
MOV AL,25
MOV CH,0
MOV CL,0
MOV DH,24
MOV DL,79
MOV BH,7
INT 10H
mov ah,2h
mov dh,2
mov dl,15
mov bh,0
int 10h
LEA DX,line1
call dis
mov ah,2h
mov dh,3
mov dl,15
mov bh,0
int 10h
LEA DX,line2
call dis
mov ah,2h
mov dh,4
mov dl,15
mov bh,0
int 10h
LEA DX,line3
call dis
mov ah,2h
mov dh,6
mov dl,15
mov bh,0
int 10h
LEA DX,line4
call dis
;*******************enter number
MOV AH,0AH
LEA DX,STRLIST
INT 21H
mov ah,2h
mov dh,18
mov dl,25
mov bh,0
int 10h
;***********************************chek len number
LEA BX,BUFFER
MOV DL,[BX]
MOV CL,LEN
CMP CL,1
JnE a
LEA BX,BUFFER
MOV DL,[BX]
;*******************if len equal '1'
;CMP LEN,1
;JNE yekan0
CMP DL,N0
JNE yekan0
LEA DX,m0
call dis
JMP l
YEKAN:
yekan0: CMP DL,N1
JNE yekan1
LEA DX,m1
call dis
JMP l
yekan1: CMP N2,DL
JNE yekan3
LEA DX,M2
call dis
JMP l
yekan3: CMP N3,DL
JNE yekan4
LEA DX,M3
call dis
JMP l
yekan4: CMP N4,DL
JNE yekan5
LEA DX,M4
call dis
JMP l
yekan5: CMP N5,DL
JNE yekan6
LEA DX,M5
call dis
JMP l
yekan6: CMP N6,DL
JNE yekan7
LEA DX,M6
call dis
JMP l
yekan7: CMP N7,DL
JNE yekan8
LEA DX,M7
call dis
JMP l
yekan8: CMP N8,DL
JNE yekan9
LEA DX,M8
call dis
JMP l
yekan9: CMP N9,DL
JNE l
LEA DX,M9
call dis
JMP l
;*******************if len equal '2'
a: CMP CL,2
JnE B
LEA BX,BUFFER
MOV DL,[BX]
DAHGAN:
CMP N0,DL
JNE FF
INC BX
MOV DL,[BX]
jmp YEKAN
FF: CMP N1,DL
JNE F
INC BX
MOV DL,[BX]
CMP DL,N0
JNE dahgan1
LEA DX,M10
call dis
JMP YEKAN
F:JMP dahgan20
dahgan1: CMP DL,N1
JNE dahgan2
LEA DX,M11
call dis
JMP YEKAN
dahgan2: CMP N2,DL
JNE dahgan3
LEA DX,M12
call dis
JMP YEKAN
dahgan3: CMP N3,DL
JNE dahgan4
LEA DX,M13
call dis
JMP YEKAN
dahgan4: CMP N4,DL
JNE dahgan5
LEA DX,M14
call dis
JMP YEKAN
dahgan5: CMP N5,DL
JNE dahgan6
MOV DX,OFFSET M15
call dis
JMP YEKAN
dahgan6: CMP N6,DL
JNE dahgan7
LEA DX,M16
call dis
JMP YEKAN
dahgan7: CMP N7,DL
JNE dahgan8
LEA DX,M17
call dis
JMP YEKAN
dahgan8: CMP N8,DL
JNE dahgan9
LEA DX,M18
call dis
JMP YEKAN
dahgan9: CMP N9,DL
JNE E
LEA DX,M19
call dis
JMP YEKAN
E:JMP YEKAN
dahgan20:
CMP N2,DL
JNE dahgan30
LEA DX,M20
MOV AH,9H
INT 21H
INC BX
MOV DL,[BX]
jmp YEKAN
JMP YEKAN
dahgan30: CMP N3,DL
JNE dahgan40
LEA DX,M30
call dis
INC BX
MOV DL,[BX]
jmp YEKAN
JMP YEKAN
dahgan40: CMP N4,DL
JNE dahgan50
LEA DX,M40
call dis
INC BX
MOV DL,[BX]
JMP YEKAN
dahgan50: CMP N5,DL
JNE dahgan60
LEA DX,M50
call dis
INC BX
MOV DL,[BX]
JMP YEKAN
dahgan60: CMP N6,DL
JNE dahgan70
LEA DX,M60
call dis
INC BX
MOV DL,[BX]
JMP YEKAN
dahgan70: CMP N7,DL
JNE dahgan80
LEA DX,M70
call dis
INC BX
MOV DL,[BX]
JMP YEKAN
dahgan80: CMP N8,DL
JNE dahgan90
LEA DX,M80
call dis
INC BX
MOV DL,[BX]
JMP YEKAN
dahgan90: CMP N9,DL
JNE YEKAN
LEA DX,M90
call dis
INC BX
MOV DL,[BX]
JMP YEKAN
;**********************if number equal '3'**************************
JMP L
b: CMP CL,3
JnE l
LEA BX,BUFFER
MOV DL,[BX]
CMP N0,dl
JNE sadgan100
INC BX
MOV DL,[BX]
jmp dahgan
sadgan100: CMP N1,DL
JNE sadgan200
LEA DX,M100
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan200: CMP N2,DL
JNE sadgan300
LEA DX,M200
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan300: CMP N3,DL
JNE sadgan400
LEA DX,M300
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan400: CMP N4,DL
JNE sadgan500
LEA DX,M400
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan500: CMP N5,DL
JNE sadgan600
LEA DX,M500
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan600: CMP N6,DL
JNE sadgan700
LEA DX,M600
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan700: CMP N7,DL
JNE sadgan800
LEA DX,M700
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan800: CMP N8,DL
JNE sadgan900
LEA DX,M800
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
sadgan900: CMP N9,DL
JNE DAHGAN
LEA DX,M900
call dis
INC BX
MOV DL,[BX]
JMP DAHGAN
;************************************************************
JMP L
L: MOV AH,0AH
LEA DX,STRLIST
INT 21H
jmp lop
MOV AX,4C00H
INT 21H
MAIN ENDP
;************************************************************
;****************** intrupt print string **********************
dis proc near
MOV AH,9H
INT 21H
ret
dis endp
END MAIN