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 [3146]

Last edited on 2017-10-22 16:24:12 by CamilDemetrescu
Additions:
===Lunedì 9 e giovedì 12 ottobre 2017 (Lezione 3 - 150 min) - Demetrescu/Coppa===
Deletions:
===Lunedì 9 ottobre 2017 (Lezione 3 - 150 min) - Demetrescu===


Revision [3137]

Edited on 2017-10-22 16:18:21 by CamilDemetrescu
Additions:
===Lunedì 9 ottobre 2017 (Lezione 3 - 150 min) - Demetrescu===
Deletions:
===Lunedì 9 ottobre 2017 (Lezione 4 - 150 min) - Demetrescu===


Revision [3046]

Edited on 2017-10-14 17:30:12 by CamilDemetrescu
Additions:
===Lunedì 9 ottobre 2017 (Lezione 4 - 150 min) - Demetrescu===
==Esempio 1: costrutto ##if##==
==Esempio 2: costrutto ##if##==
==Esempio 3: costrutto ##while##==
Deletions:
==Lunedì 9 ottobre 2017 (Lezione 4 - 150 min) - Demetrescu==
===Esempio 1: costrutto ##if##===
===Esempio 2: costrutto ##if##===
===Esempio 3: costrutto ##while##===


Revision [3032]

Edited on 2017-10-11 21:04:07 by EmilioCoppa
Additions:
decl %ecx # n--;
Deletions:
decl %eax # n--;


Revision [3027]

Edited on 2017-10-11 09:16:30 by CamilDemetrescu
Additions:
# C equivalente:
# C equivalente:
# C equivalente:


Revision [3026]

Edited on 2017-10-11 09:15:34 by CamilDemetrescu
Additions:
===Esempio 2: costrutto ##if##===
Calcolo del minimo di due ##short##:
%%(c;min.c)
short min(short x, short y);
short m = min(-7, -22);
printf("%hd\n", m);
%%(c;min.c)
short min(short x, short y) {
if (x < y) return x;
return y;
%%(c;min.s)
# short min(short x, short y) {
# if (x < y) return x;
# return y;
# short min(short x, short y) {
# if (x >= y) goto E; # x <-> ax, y <-> cx
# return x;
# E return y;
.globl min
min:
movw 4(%esp), %ax
movw 8(%esp), %cx
cmpw %cx, %ax # if (x >= y) goto E
jge E
ret # return x;
E: movw %cx, %ax
ret
===Esempio 3: costrutto ##while##===
%%(c;fact.c)
%%(c;fact.s)
Deletions:
===Esempio 2: costrutto ##while##===


Revision [3025]

Edited on 2017-10-11 09:06:55 by CamilDemetrescu
Additions:
===Esempio 2: costrutto ##while##===
Calcolo del fattoriale di un intero senza segno:
unsigned fact(unsigned);
int main(){
unsigned f = fact(6);
printf("%u\n", f);
unsigned fact(unsigned n) {
unsigned f = 1;
while (n > 1) {
f *= n;
n--;
}
return f;
# unsigned fact(unsigned n) {
# unsigned f = 1;
# while (n > 1) {
# f *= n;
# n--;
# }
# return f;
# unsigned fact(unsigned n) { # n <->ecx
# unsigned f = 1; # f <-> eax
# L: if (n <= 1) goto E;
# f *= n;
# n--;
# goto L;
# E: return f;
.globl fact
fact:
movl 4(%esp), %ecx # carica parametro n in ecx
movl $1, %eax # unsigned f = 1;
L: cmpl $1, %ecx # L: if (n <= 1) goto E;
jbe E
imull %ecx, %eax # f *= n;
decl %eax # n--;
jmp L # goto L;
E: ret # E: return f;


Revision [3024]

Edited on 2017-10-11 09:05:44 by CamilDemetrescu
Additions:
===Esempio 1: costrutto ##if##===
Calcolo del valore assoluto di un intero:
Deletions:
===Esempio 1: funzioni senza parametri e creazione file .s===
Programma con funzione senza parametri con valore di ritorno intero:


Revision [3023]

The oldest known version of this page was created on 2017-10-11 08:57:54 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0294 seconds