Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Programma | Materiale didattico | Esami | Forum | Login

Revision [3142]

Last edited on 2017-10-22 16:21:23 by CamilDemetrescu
Additions:
===Lunedì 16 e giovedì 19 ottobre 2017 (Lezione 5 - 150 min) - Demetrescu/Coppa===


Revision [3141]

Edited on 2017-10-22 16:19:46 by CamilDemetrescu
Deletions:
===Lunedì 16 ottobre e Giovedì 19 ottobre 2017 (Lezione 6 - 150 min) - Demetrescu/Coppa===


Revision [3140]

Edited on 2017-10-22 16:19:19 by CamilDemetrescu
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===


Revision [3139]

Edited on 2017-10-22 16:19:11 by CamilDemetrescu
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===


Revision [3135]

Edited on 2017-10-22 16:16:30 by CamilDemetrescu
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===


Revision [3134]

Edited on 2017-10-22 16:16:17 by CamilDemetrescu
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===


Revision [3082]

Edited on 2017-10-19 05:54:22 by CamilDemetrescu
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
%%


Revision [3079]

The oldest known version of this page was created on 2017-10-19 05:51:30 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0233 seconds