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

Last edited on 2015-11-25 23:27:34 by CamilDemetrescu
Additions:
==Soluzioni Esercizi 1-6==
Sono di sponibili le [[SolEserc02AA1516 soluzioni degli esercizi 1-6]]


Revision [1187]

Edited on 2015-11-10 13:07:13 by CamilDemetrescu
Deletions:
.globl mistero


Revision [1186]

Edited on 2015-11-10 13:06:55 by CamilDemetrescu
Additions:
.globl mistero
cmpl 12(%esp), %eax
jnb .L3
movzwl (%edx,%eax,2), %eax
.L3:
movl $-1, %eax


Revision [1185]

Edited on 2015-11-10 12:29:17 by CamilDemetrescu
Additions:
==Esercizio 7==
[[https://docs.google.com/a/dis.uniroma1.it/forms/d/1CBfcKEpctN5NtfxSw1eaOycIm8iA-0Rrm_tou0Unsi4/viewform Domande su operandi e modi di indirizzamento della memoria IA32]]
==Esercizio 8==
[[https://docs.google.com/a/dis.uniroma1.it/forms/d/1U5OFAfU9V51mz1l99KYXAeHSjQss7VmTX5FG65ycgqI/viewform Domande su istruzioni aritmetico-logiche IA32]]


Revision [1182]

Edited on 2015-11-10 12:11:50 by CamilDemetrescu
Additions:
Tradurre in C la seguente funzione IA32 generata con ##gcc -m32 -O1## in un modulo ##es5.c##:
%%(asm;es5.s)
Tradurre in C la seguente funzione IA32 generata con ##gcc -m32 -O1## in un modulo ##es6.c##:
.globl mistero
Deletions:
Tradurre in C la seguente funzione IA32 in un modulo ##es5.c##:
%%(c;es5.s)
Tradurre in C la seguente funzione IA32 in un modulo ##es6.c##:
.globl mistero


Revision [1181]

Edited on 2015-11-10 12:10:55 by CamilDemetrescu
Additions:
==Esercizio 5==
Tradurre in C la seguente funzione IA32 in un modulo ##es5.c##:
%%(c;es5.s)
Scrivere un programma di prova ##es5-main.c## per verificare la correttezza della funzione.
==Esercizio 6==
Tradurre in C la seguente funzione IA32 in un modulo ##es6.c##:
%%(asm;es6.s)
.globl mistero
mistero:
movl 4(%esp), %edx
movl 8(%esp), %eax
jmp .L2
.L4:
movzwl -4(%edx,%eax,2), %ecx
subl $1, %eax
cmpw (%edx,%eax,2), %cx
ja .L5
.L2:
cmpl $1, %eax
ja .L4
movl $1, %eax
ret
.L5:
movl $0, %eax
ret
Scrivere un programma di prova ##es6-main.c## per verificare la correttezza della funzione.


Revision [1180]

Edited on 2015-11-10 10:36:00 by CamilDemetrescu
Additions:
int streq(const char* s1, const char* s2);
res = streq("ciao", "ciao");
printf("streq(\"ciao\", \"ciao\")=%d\n", res);
res = streq("ciaos", "ciao");
printf("streq(\"ciaos\", \"ciao\")=%d\n", res);
res = streq("ciac", "ciao");
printf("streq(\"ciac\", \"ciao\")=%d\n", res);
res = streq("cia", "ciao");
printf("streq(\"cia\", \"ciao\")=%d\n", res);
res = streq("", "");
printf("streq(\"\", \"\")=%d\n", res);
}%%


Revision [1179]

Edited on 2015-11-10 10:35:17 by CamilDemetrescu

No differences.

Revision [1178]

Edited on 2015-11-10 10:35:02 by CamilDemetrescu
Additions:
Tradurre in IA32 la seguente funzione C in un modulo ##es1.s##:
Tradurre in IA32 la seguente funzione C in un modulo ##es2.s##:
Tradurre in IA32 la seguente funzione C in un modulo ##es3.s##:
Tradurre in IA32 la seguente funzione C in un modulo ##es4.s##:
Deletions:
Tradurre in IA32 la seguente funzione C:
Tradurre in IA32 la seguente funzione C:
Tradurre in IA32 la seguente funzione C:
Tradurre in IA32 la seguente funzione C:


Revision [1177]

Edited on 2015-11-10 10:33:47 by CamilDemetrescu
Additions:
unsigned sum = 0;
while (n>=1) sum += n--;
return sum;
unsigned sum1N(unsigned n);
unsigned res;
res = sum1N(4);
printf("sum1N(4)=%u\n", res);
res = sum1N(0);
printf("sum1N(0)=%u\n", res);


Revision [1176]

Edited on 2015-11-10 10:29:46 by CamilDemetrescu
Additions:
==Esercizio 3 (istruzione while, somma dei numeri da 1 a n)==
%%(c;es3.c)
unsigned sum1N(unsigned n) {
%%(c;es3-test.c)


Revision [1175]

Edited on 2015-11-10 10:19:07 by CamilDemetrescu
Additions:
Si tenga presente che non è possibile usare due operandi memoria: ad esempio ##cmpb (%eax), (%ecx)## è illegale. Testare il funzionamento della funzione scritta con il seguente programma di prova:


Revision [1174]

Edited on 2015-11-10 10:07:10 by CamilDemetrescu
Additions:
%%(c;es4.c)
%%(c;es4-test.c)


Revision [1173]

Edited on 2015-11-10 10:06:57 by CamilDemetrescu
Additions:
==Esercizio 4 (istruzione while, uguaglianza di stringhe C)==
int streq(const char* s1, const char* s2) {
while (*s1 == *s2)
if (*s1 == 0) return 1;
else s1++, s2++;
return 0;


Revision [1172]

Edited on 2015-11-10 09:47:39 by CamilDemetrescu

No differences.

Revision [1171]

Edited on 2015-11-10 09:47:13 by CamilDemetrescu
Additions:
**Nota bene:** compilare a 32 bit con ##gcc -m32##.
Deletions:
**Nota bene:** compilare a 32 bit con ##-m32##.


Revision [1170]

Edited on 2015-11-10 09:46:56 by CamilDemetrescu
Additions:
**Nota bene:** compilare a 32 bit con ##gcc -m32## (##gcc -m32 es1-main.c es1.s -o es1##).
Deletions:
**Nota bene:** compilare a 32 bit con ##gcc -m32## (##gcc -m32 es1-main.c es1.s -o es1##).


Revision [1169]

Edited on 2015-11-10 09:46:46 by CamilDemetrescu
Additions:
**Nota bene:** compilare a 32 bit con ##gcc -m32## (##gcc -m32 es1-main.c es1.s -o es1##).
Deletions:
**Nota bene:** compilare a 32 bit con ##gcc -m32## (##gcc es1-main.c es1.s -o es1 -m32##).


Revision [1168]

Edited on 2015-11-10 09:46:29 by CamilDemetrescu
Additions:
**Nota bene:** compilare a 32 bit con ##gcc -m32## (##gcc es1-main.c es1.s -o es1 -m32##).
Deletions:
**Nota bene:** compilare a 32 bit con ##-m32## (##gcc es1-main.c es1.c -o es1 -m32##).


Revision [1167]

The oldest known version of this page was created on 2015-11-10 09:45:45 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0493 seconds