For __cdecl it's
push ebp
mov ebp, esp
add esp (size of stack)
...
...
pop ebp
ret
where arguments are pushed and cleaned by caller. The 'n'th argument is on [esp + 4*(n+1)] and the 'n'th local is on [esp - 4*n], assuming all locals are sizeof(void*) long. __cdecl also has the restriction that it returns on EAX and does not modify EBX, ESP, EBP, EIP or EFLAGS over the function call. All other registers are saved by the caller if it cares about their value.
Also, by the general formula for matrix multiplication don't you just mean A : R[n,r], B : R[r,m] --> (AB) : R[n,m], (AB)[i,j] = Sum[ i : [0, r], A[i,r] * B[r, j] ]?
With regards to whether or not it's a programming language - most people don't use Turing Completeness as a requirement (nessisary _or_ sufficient) for a syntax to be a programming language. The requirement is usually just the slightly subjective question of whether you can perform and automate meaningful tasks via the syntax. Languages for which is theoretically, but not in practise true, such as BrainF*ck and Shakespeare Programming Language are termed "esoteric programming languages", although strictly one ought to refer to them as esoteric syntaxes, since they arn't in practise used for programming. Under such a definition SQL is clearly a programming language.
It is important to remember that being good at two or three languages is much more important than having a brief overview of ten different ones - so if you feel that you know 7 or 8 programming languages, then you should probably be seeking to become really good at one or two of them (preferably in entirely different paradgms, such as learning C, C# and Haskell), rather than learning any more.