05-26-2010, 04:44 AM
CS401 Solution Assignment 3
Code:
;----
; ---- start of loop reading the keyboard
; ---- one character at a time
;----
mov bX,0 -- initialize capital character counter
loop_top:
MOV AH,1 ;READ A CHARACTDR
INT 21h
cmp al,0dh ; end of line?
je Display1 ; yes, then stop
; test for capital letters
cmp al,'A'
JL loop_end ; if char < 'A' then go
CMP al,'Z'
JG loop_end ; if char > 'Z' then go
INC bx ; increment capital letter counter
cmp bx,9
JG Display2 ; too many capital letters
loop_end:
jmp loop_top
Display1:
LEA DX,MSG2 ;GET MSG1
MOV AH,9 ;DISPLAY STRING
INT 21H ;DISPLAY MSG1
mov dl,bl ; print the number of characters
add dl,'0' ; make it readable
MOV AH,2 ;display the character that is in dl
INT 21H
jmp exit_program ; all done
Display2:
LEA DX,MSG3 ;GET MSG1
MOV AH,9 ;DISPLAY STRING
INT 21H ;DISPLAY MSG1
exit_program:
MOV AH,4CH ; return control to DOS
INT 21H
MAIN ENDP
END MAIN
END