First. Since you are using the stack to pass the arguments for your function AND 'int 0x80', I assume you are dealing with 32 bits SysV ABI. You cannot use Rxx registers there.
Second, there is a better approach:
bits 32 ; to be sure!
section .text
global putstr
; Stack frame for putstr() function call.
struc putstrstk
.retaddr: resd 1 ; call will push the return address.
.len: resd 1 ; cdecl calling convention will push len first,...
.textptr: resd 1 ; ... then, textptr, before calling putstr().
endstruc
; void putstr(char *text, size_t len)
putstr:
; You don't need to use EBP!!!
mov eax, 4 ; write syscall [write( int fd, void *buff, size_t size );]
mov ebx, 1 ; stdout
mov ecx, [esp + putstrstk.textptr]
mov edx, [esp + putstrstk.len]
int 0x80
ret
Third, EQU is not a lexical substitution directive. For that purpose you should use %define:
%define aParam [ebp+4]
%define bParam [ebp+8]