startofprogram: mov AH, 0 mov AL, 7 int 16 mov AH, 9 lea DX, menu int 33 mov AH, 63 mov BX, 0 mov CX, 1 lea DX, choice int 33 mov AH, 2 cmp choice , '1' jne option2 input: mov AH, 0 mov AL, 7 int 16 mov AH, 9 lea DX, menuop1 int 33 mov AH, 63 mov BX, 0 mov CX, 25 lea DX, text int 33 sub AX, 2 mov length, AX cmp length, 25 ja error jmp startofprogram error: mov AH, 0 mov AL, 7 int 16 lea DX, error1 call print9 mov AH, 63 mov BX, 0 mov CX, 1 lea DX, return int 33 ja input option2: cmp choice, '2' jne option3 mov AH, 0 mov AL, 7 int 16 mov AH, 9 lea DX, menuop2 int 33 mov AH, 64 mov BX, 1 mov CX, length lea DX, text int 33 mov AH, 9 lea DX, crlf int 33 lea DX, returnmenu int 33 mov AH, 63 mov BX, 0 mov CX, 1 lea DX, return int 33 jmp startofprogram option3: cmp choice, '3' jne option4 mov AH, 0 mov AL, 7 int 16 mov AH, 9 lea DX, menuop4 int 33 mov CX, 0 mov BP, 0 lea SI, text lea DI, copy compare: mov BL, vowels[BP] cmp text, BL je loop2 jne loop1 mov AH, 64 mov BX, 1 mov CX, length lea DX, copy int 33 mov AH, 9 lea DX, crlf int 33 lea DX, returnmenu int 33 mov AH, 63 mov BX, 0 mov CX, 1 lea DX, return int 33 jmp startofprogram loop1: mov DL, [SI] mov [DI], DL inc SI inc DI inc CX inc BP cmp CX, length jb compare loop2: inc BP cmp CX, length jb compare option4: cmp choice, '4' jne option5 mov AH, 0 mov AL, 7 int 16 mov AH, 9 lea DX, menuop3 int 33 mov CX, 0 lea SI, text lea DI, copy loop: mov DL, [SI] mov [DI], DL inc SI dec DI inc CX cmp CX, length jb loop mov AH, 64 mov BX, 1 mov CX, length lea DX, copy int 33 mov AH, 9 lea DX, crlf int 33 lea DX, returnmenu int 33 mov AH, 63 mov BX, 0 mov CX, 1 lea DX, return int 33 jmp startofprogram option5: cmp choice, '5' jne option6 jmp startofprogram option6: cmp choice, '6' jne option7 jmp startofprogram option7: cmp choice, '7' jmp startofprogram hlt clear: mov AH, 0 mov AL, 7 int 16 menu DB 'ASSIGNMENT MENU' DB 13, 10 DB '[1] Enter String' DB 13, 10 DB '[2] Display String' DB 13, 10 DB '[3] Reverse String' DB 13, 10 DB '[4] Display String without Vowels and Spaces' DB 13, 10 DB '[5] Display String in Upper Case' DB 13, 10 DB '[6] Caesar Cipher' DB 13, 10 DB '[7] Quit' DB 13, 10 DB 13, 10 DB 'Please Choose an Option:$' choice DW '' text DB '1234567890123456789012345' copy DB '1234567890123456789012345' length DW '' menuop1 DB 'Please enter a string: $' menuop2 DB 'Your string: $' menuop3 DB 'Your reverse string: $' menuop4 DB 'Your string without vowels: $' return DW '' crlf DB 13, 10, 36 returnmenu DB 'Press any key to return to the main menu$' error1 DB 'Please enter a string that is 25 characters or less in length$' vowels DB 'aeiou ' print9: mov AH, 9 int 33 ret