Additions:
===Lunedì 16 e giovedì 19 ottobre 2017 (Lezione 5 - 150 min) - Demetrescu/Coppa===
Deletions:
===Lunedì 16 ottobre e Giovedì 19 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu/Coppa===
 
Additions:
===Lunedì 16 ottobre e Giovedì 19 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu/Coppa===
Deletions:
===Lunedì 16 ottobre + Giovedì 19 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu/Coppa===
Additions:
===Lunedì 16 ottobre + Giovedì 19 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu/Coppa===
Deletions:
===Lunedì 16 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu===
===Giovedì 19 ottobre 2017 (Lezione 5 - 150 min) - Coppa===
Additions:
===Lunedì 16 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu===
===Giovedì 19 ottobre 2017 (Lezione 5 - 150 min) - Coppa===
Deletions:
===Lunedì 16 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu e Giovedì 19 ottobre 2017 (Lezione 5 - 150 min) - Coppa===
Additions:
===Lunedì 16 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu e Giovedì 19 ottobre 2017 (Lezione 5 - 150 min) - Coppa===
 
Deletions:
===Lunedì 16 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu===
Additions:
==Esempio 1: verifica se due stringhe sono uguali==
%%(c;main.c)
#include 
int streq(char* x, char* y);
int main() {
	printf("%d\n", streq("ciao", "ciaooo")); // 0
	printf("%d\n", streq("ciao", "ciao"));   // 1
	printf("%d\n", streq("ciaooo", "ciao")); // 0
	return 0;
}
%%
%%(c;incr.c)
int streq(char* x, char* y) {
	while (*x == *y) {
		if (*x == 0) return 1;
		x++;
		y++;
	}
	return 0;
}
%%
%%(asm;incr.s)
# int streq(char* x, char* y) {
#     while (*x == *y) {
#         if (*x == 0) return 1;
#         x++;
#         y++;
#     }
#     return 0;
# }
# int streq(char* x, char* y) {
#     char *c = x, *d = y, a;
#  L: a = *c;
#     if (a != *d) goto E;
#     if (a != 0) goto Q;
#     return 1;
#  Q: c++;
#     d++;
#     goto L;
#  E: return 0;
# }
.globl streq
streq:
   movl 4(%esp), %ecx # char* c = x
   movl 8(%esp), %edx # char* d = y
L: movb (%ecx), %al   # L: a = *c;
   cmpb (%edx), %al   # if (a != *d) goto E;
   jne E
   cmpb $0, %al       # if (a != 0) goto Q;
   jne Q
   movl $1, %eax      # return 1;
   ret
Q: incl %ecx          # Q: c++;
   incl %edx          # d++;
   jmp L              # goto L;
E: movl $0, %eax      # E: return 0;
   ret
%%