;*/*/*/*/*/*/*/*/*/* STACK SEGMENT *\*\*\*\*\*\*\*\*\*\ stacksg segment para stack 'stack' dw 32 dup('?') stacksg ends ;*/*/*/*/*/*/*/*/*/* DATA SEGMENT *\*\*\*\*\*\*\*\*\*\ datasg segment para 'data' msg db "------------------------------------------------------------",'$' msg0 db "This program split zoj & fard digits and found sum asci code",'$' msg1 db "Enter a String: ",'$' msg2 db "Sum of Zoj number: ",'$' msg3 db "Sum of Fard number: ",'$' msg4 db "Zoj Chars: ",'$' msg5 db "Fard chars: ",'$' msg6 db "Made by REZA AKHLAGHY & MOHAMMAD SHERAFAT",'$' strlist label byte max db 10 len db ? input_string db 10 dup(' ') count db 0 o_char db 10 dup(' '),'$' e_char db 10 dup(' '),'$' e_sum dw ? o_sum dw ? e_sum_2_str db 5 dup (?),'$' o_sum_2_str db 5 dup (?),'$' datasg ends ;*/*/*/*/*/*/*/*/*/* CODE SEGMENT *\*\*\*\*\*\*\*\*\*\ codesg segment para 'code' main proc far assume cs:codesg,ds:datasg,es:codesg mov ax,datasg mov ds,ax ;*/*/*/*/*/*/*/*/*/* CLEAR SCREEN *\*\*\*\*\*\*\*\*\*\ mov ax,0600h mov bh,28 mov cx,0000 mov dx,184fh int 10h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,1 mov dl,8 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE *\*\*\*\*\*\*\*\*\*\ lea dx,msg mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,2 mov dl,8 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE0 *\*\*\*\*\*\*\*\*\*\ lea dx,msg0 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,3 mov dl,8 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE *\*\*\*\*\*\*\*\*\*\ lea dx,msg mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,5 mov dl,14 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE6 *\*\*\*\*\*\*\*\*\*\ lea dx,msg6 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,10 mov dl,30 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE1 *\*\*\*\*\*\*\*\*\*\ lea dx,msg1 mov ah,9h int 21h ;*/*/*/*/*/*/*/*/*/* GET THE STRING *\*\*\*\*\*\*\*\*\*\ mov ah,0ah lea dx,strlist int 21h ;*/*/*/*/*/*/*/*/*/* -------------MAIN OPRATION----------- *\*\*\*\*\*\*\*\*\*\ lea si,o_char lea di,e_char lea bx,input_string mov cl,0 start_of_loop: cmp cl,len je end_of_program mov al,[bx] mov ah,0 mov dl,2 div dl mov al,[bx] cmp ah,1 je case_o cbw add e_sum,ax mov dh,[bx] mov [di],dh inc di ;74 inc bx inc cl jmp start_of_loop case_o: cbw add o_sum,ax mov dh,[bx] mov [si],dh inc si inc bx inc cl jmp start_of_loop end_of_program: ;*/*/*/*/*/*/*/*/*/* CONVERT NUMBER 2 STRING _ FARD *\*\*\*\*\*\*\*\*\*\ lea bx, o_sum_2_str mov ax, o_sum mov cx,1000 mov dx,0 div cx add al,30h mov [bx],al mov o_sum,dx inc bx ;------- mov ax, o_sum mov cl,100 div cl add al,30h mov [bx],al mov al,ah mov ah,0 mov o_sum,ax inc bx ;------- mov ax, o_sum mov cl, 10 div cl add al,30h mov [bx],al mov al,ah mov ah,0 inc bx ;------- add al,30h mov [bx],al ;*/*/*/*/*/*/*/*/*/* CONVERT NUMBER 2 STRING _ ZOJ *\*\*\*\*\*\*\*\*\*\ lea bx, e_sum_2_str mov ax, e_sum mov cx,1000 mov dx,0 div cx add al,30h mov [bx],al mov e_sum,dx inc bx ;------- mov ax, e_sum mov cl,100 div cl add al,30h mov [bx],al mov al,ah mov ah,0 mov e_sum,ax inc bx ;------- mov ax, e_sum mov cl, 10 div cl add al,30h mov [bx],al mov al,ah mov ah,0 inc bx ;------- add al,30h mov [bx],al ;*/*/*/*/*/*/*/*/*/* CLEAR SCREEN *\*\*\*\*\*\*\*\*\*\ mov ax,0600h mov bh,28 mov cx,0000 mov dx,184fh int 10h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,10 mov dl,30 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE2 *\*\*\*\*\*\*\*\*\*\ lea dx,msg2 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* PRINT SUM OF ZOJ *\*\*\*\*\*\*\*\*\*\ lea dx,e_sum_2_str mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,11 mov dl,30 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE3 *\*\*\*\*\*\*\*\*\*\ lea dx,msg3 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* PRINT SUM OF FARD *\*\*\*\*\*\*\*\*\*\ lea dx,o_sum_2_str mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,12 mov dl,30 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE4 *\*\*\*\*\*\*\*\*\*\ lea dx,msg4 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* PRINT ZOJ CHARS *\*\*\*\*\*\*\*\*\*\ lea dx,e_char mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,13 mov dl,30 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE5 *\*\*\*\*\*\*\*\*\*\ lea dx,msg5 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* PRINT FARD CHARS *\*\*\*\*\*\*\*\*\*\ lea dx,o_char mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,18 mov dl,14 mov bh,0 int 10h ;*/*/*/*/*/*/*/*/*/* PRINT MASSAGE6 *\*\*\*\*\*\*\*\*\*\ lea dx,msg6 mov al,0 mov ah,09h int 21h ;*/*/*/*/*/*/*/*/*/* CLOSE PROGRAM *\*\*\*\*\*\*\*\*\*\ ;*/*/*/*/*/*/*/*/*/* MOVE CURSOR *\*\*\*\*\*\*\*\*\*\ mov ah,2h mov dh,23 mov dl,8 mov bh,0 int 10h mov ax,4c00h int 21h main endp codesg ends end main