edit:
int main(int a;int b;short* mat1)
{
short mat2[a][ b];
main() ne connait pas ces arguments, pour donner des arguments BASIC à un programme asm c'est LARGEMENT plus compliqué
et comment t'arrives a utiliser 1 minute pour faire un jeu de la vie de 9x9 ?

et pour les erreurs t'aurais pu nous donner les numéros de ligne #flemme#
martial > a0 <=> x, (a0) (*x)
y* n'est valide que si y est un type, pour la déclaration d'un pointeur
char *x;
char y;
x=&y; /*adresse de y dans x*/
*x=3; /*mettre 3 dans (x) ie dans y
ce qui te trompe c'est qu'en asm tous les labels sont des pointeurs, donc toutes les variables sont des adresses de type int* x;
edit autre truc foireux, la syntaxe de char * x;
char* x -> x est l'adresse d'un char
mais comme le C néglige les espaces, on peut aussi écrire char *x (ce qui est pratique pour mettre char i, *j; )