Hi. I am new to programming, and I am required to make a sorting program. Here is the problem Create an AL program that will input a string 10 characters long then print the characters in decending or accending order.The program will also prompt the user if he/she wants to repeat the program, if the answer is 'Y' repeat the program if the answer is 'N' display the word "Thank You then exit the program. Example: Enter String :GDFEWPSHBA Choice [1]Accending [2]Decending Enter Choice :1 Accending Order :ABDEFGHPSW Enter Another[Y/N] :N Thank You !!! So, here is my plan... I will first get each character of the 10-letter line the user inputted, and allocate it into an array. Then, sort it using any of the sorts (I used bubble sort for the program), then show it to the user and prompt him if he wants to continue. I am making a code for this using several references, and I made a program.The problem is... when I start running the program, DOS crashes and the program terminates!!! Here is my code... Code: .model small .stack 100h .data prompt db 0dh,0ah, "Enter String : $" choice db 0dh,0ah,0dh,0ah,"Choice",0dh,0ah,"[1]Ascending",0dh,0ah,"[2]Descending",0dh,0ah,0dh,0ah,"Enter Choice :$" ascending db 0dh,0ah,0dh,0ah,"Ascending Order :$" descending db 0dh,0ah,0dh,0ah,"Descending Order :$" decision db 0dh,0ah,0dh,0ah,"Enter Another[Y/N] :$" thank db 0dh,0ah,0dh,0ah,"Thank You !!!" array db 10 dup (0) .code main proc mov ax, @data mov ds, ax @start: mov ax, offset prompt call print_array mov ax, offset array call read_array lea dx, choice mov ah, 9 int 21h mov ah, 1 int 21h lea si, array cmp dl, 1 call descend call ascend mov ax, offset array call print_array lea dx, decision mov ah, 9 int 21h mov ah, 1 int 21h mov bl, al and bl, 0dfh cmp bl, "N" jmp @start mov ah, 9 lea dx, thank int 21h mov ah, 4ch int 21h main endp read_array proc push ax push bx push cx push dx mov bx, ax call getc mov byte ptr[bx], al @get_loop: cmp al, 0dh je @get_fin inc bx call getc mov byte ptr[bx], al jmp @put_loop @get_fin: pop dx pop cx pop bx pop ax ret read_array endp ascend proc push ax push bx push cx push dx push di lea dx, ascending mov ah, 9 int 21h mov ax, si mov cx, bx dec cx @outer_loop: mov bx, cx mov si, ax mov di, ax inc di @inner_loop: mov dl, [si] cmp dl, [di] jng @skip xchg dl, [di] mov [si], dl @skip: inc si inc di dec bx jnz @inner_loop loop @outer_loop pop di pop dx pop cx pop bx pop ax ret ascend endp descend proc push ax push bx push cx push dx push di lea dx, descending mov ah, 9 int 21h mov ax, si mov cx, bx dec cx @outer_loop2: mov bx, cx mov si, ax mov di, ax inc di @inner_loop2: mov dl, [si] cmp dl, [di] jng @skip2 xchg dl, [di] mov [si], dl @skip2: inc si inc di dec bx jnz @inner_loop2 loop @outer_loop2 pop di pop dx pop cx pop bx pop ax ret descend endp print_array proc push ax push bx push cx push dx mov bx, ax mov al, byte ptr[bx] @put_loop: cmp al, 0 je @put_fin call putc inc bx mov al, byte ptr[bx] jmp @put_loop @put_fin: pop dx pop cx pop bx pop ax ret print_array endp putc proc push ax push bx push cx push dx mov dl, al mov ah, 2 int 21h pop dx pop cx pop bx pop ax ret putc endp getc proc push ax push bx push cx push dx int 21h pop dx pop cx pop bx pop ax ret getc endp end main Can you help me in modifying this program? Any suggestions? Please help me...