rendered paste bodystartofprogram:
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