All pastes #916863 Raw Edit

Someone

public text v1 · immutable
#916863 ·published 2008-02-24 23:42 UTC
rendered paste body
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