Some compilers are able to access variables directly in the inline assembler the way you tried to do it:
mov ebx, nCVar
However many compilers simply pass the assembler code to the assembler so there is no interaction with the C program.
In the case of such compilers you cannot access local or "static" variables because the information about the existance of these variables is often lost in the assembler code.
Some compilers with built-in assemblers do not allow accessing symbols in inline assembly. In such cases it would not be possible to access C variables from inline assembly at all.
However if accessing symbols is possible and the variable you want to access is global (not "static") it should be possible to access the variable like you tried to do it. However the symbol name of the variable has to be used.
Under Windows the symbol names of C variables are an underscore followed by the variable name:
mov ebx, _nCVar
However some assemblers would interpret this as "write the address of the variable to the ebx register"; such assemblers would require square brackets to indicate that the variable itself has to be read (instead of the address):
mov ebx, [_nCVar]
Please also note that using assembler it is up to you to care about the data types; the assembler code will not check the correctness of a data type. Using the ebx register with a 16-bit variable for example will lead to unexpected results or even to program crashes.