Hi I have already written a program in Assembly 64 bit mode in connection with C, that counts the number of left and right brackets check here:
bits 64
    section .data
    extern  g_left, g_right, g_str
        section .text
    global count
count:
    enter 0,0
    mov eax, 0                      
    mov ebx, 0                          
    mov ecx, 0              
.back:
    cmp [g_str + eax], byte 0       
    je .out
    cmp [g_str + eax], byte '['
    jne .right
    inc ebx
.right:
    cmp [g_str + eax], byte ']'
    jne .skip
    inc ecx
.skip:
    inc eax
    jmp .back
.out:
    mov [g_l], ebx              
    mov [g_r], ecx                  
    leave
    ret
C code:
#include <stdio.h>
void count();
char g_str[] = "[[[]]]][[32423]][234dsfsdf";
int g_left, g_right;
int main()
{
    count();
    printf("left = %d and right = %d\n", g_left, g_right);
}
What I want is to use this assembly code but change it a bit so that a function that is called in C with a string as input and just prints the number of brackets. Also, I want it in 32-bit mode this time. It should look like this:
int brackets( char *t_str );
I'm new to assembly and confused on how to change my code, please help me.