Hi everyone
i am new here
and i have problem with my project
this is the project

Use x86 assembly language to write a program that works as a following:
1) When the program is executed, it asks the user to enter a password
2) If the entered password matches, then the program ask the user to enter a statement
3) The statement length is up to 100 characters
4) The statement characters should include only alphabet (capital or small) letters and sp
5) Then, the program should do the following:
• Display number of words in the statement
• Display number of letters in the statement
• Display number of capital and small letters in the statement
• Display the longest word in the statement
• Display the shortest word in the statement
For example, if the user enters the following sentence:
"This is a computer organization course"
The output of the program will be:
The number of words in this statement is: 6
The number of letters in this statement is: 33
The number of capital letters in this statement is: 1
The number of small letters in this statement is: 32
The longest word in this statement is: organization
The shortest word in this statement is: a

Use TASM only

So what part do you actually need help with?

Which platform?

If Windows, DOS or GUI?

Most importantly show something of the source as you understand it should be done

So what part do you actually need help with?

Which platform?

If Windows, DOS or GUI?

Most importantly show something of the source as you understand it should be done

ok!
i did the first part which is to ask the user to enter password
and this is my code

ok!
i did the first part which is to ask the user to enter password
and this is my code

here is the code

Attachments
.model small
.stack 100h
.data

password db 'samar0000$'
pass_length db 9
enter_pass db 10,13, 'Pleaze enter your password $'
wrong_pass db 10,13, 'The password you entered is wrong, try again $'
enter_statement db 10,13, 'Pleaze enter your statement $'
statement db 100 dup (?)
no_words db 10,13, 'The number of words in this statement is: $'
no_letters db 10,13, 'The number of letters in this statement is: $'
no_capital db 10,13, 'The number of capital letters in this statement is: $'
no_small db 10,13, 'The number of small letters in this statement is: $'
longest db 10,13, 'The longest word in this statement is: $'
shortest db 10,13, 'The shortest word in this ststement is: $'
count dw 0
pass db 20
   db 0
   db 20 dup('$')

.code
;**********begin**********
begin:
mov ax,@data
mov ds,ax
mov ah,9h
mov dx, offset enter_pass
int 21h

mov ah, 0Ah
mov dx, seg pass
mov ds,dx
mov dx,offset pass
int 21h
call check_pass

mov si,0

;**********check_pass**********
proc check_pass near	
	cmp [pass+1], 9 
	jl wrong_pass1
    ; CHECKIN LENGTH EQAULITY
	mov al, [pass+1]
	cmp AL, [pass_length]
	jne wrong_pass1
	;CHECKING PASSWORD
	mov si,0
comparing :
	mov ax, si
	cmp al,  [pass_length]  ;TO SEE IF WE REACH THE END OF PASSWORD
	je end_check_pass
	mov al,  [password+si]
	cmp al, [pass+si+2]
	jne first_condition
if_equal :	
	inc si
	jmp comparing
first_condition : ; CONDITION THAT THE CHAR OF ENTERED_PASS  IS SMALL 
	sub [pass+si+2], 32 
	cmp al, [pass+si+2]
	je if_equal
second_condition : ; CONDITION THAT THE CHAR OF ENTERED_PASS  IS  CAPITAL 
	add [pass+si+2], 64 ; WE ADD 64, 32 TO EQUATE THE 32 WE SUDTRACT,
								; AND 32 TO MAKE IT CAPITAL
	cmp al, [pass+si+2]
	je if_equal
wrong_pass1 : 
	lea dx,wrong_pass ; PRINT THE MESSAGE WRONG_PASSWORD
	mov ax,@data                ;POINTED AT THE BEGINING OF THE DATA
	mov ds,ax
	mov ah,09h
	int 21h
ret
	jmp begin
end_check_pass :
	ret
	check_pass endp
end begin

Pleaze............. there is no one can help me!!!!!!!!!

hey i want the same code but with a list to choos what the user want print

This article has been dead for over six months. Start a new discussion instead.