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

Last edited on 2015-11-25 23:35:57 by CamilDemetrescu
Additions:
int mistero(unsigned short* v, unsigned n) {
while (n-- > 1) if (v[n-1] > v[n]) return 0;
return 1;


Revision [1245]

Edited on 2015-11-25 23:35:38 by CamilDemetrescu
Additions:
# unsigned sum1N(unsigned n) {
# unsigned sum = 0;
# while (n>=1) sum += n--;
# return sum;
.globl sum1N
sum1N:
movl 4(%esp), %ecx # ecx = n
loop:
cmpl $1, %ecx # if (ecx < 1) goto exit
jb exit
addl %ecx, %eax # eax += ecx
decl %ecx # ecx--
jmp loop # goto loop
# int streq(const char* s1, const char* s2) {
# while (*s1 == *s2)
# if (*s1 == 0) return 1;
# else s1++, s2++;
# return 0;
.globl streq
streq:
movl 4(%esp), %eax
movl 8(%esp), %ecx
L: movb (%eax), %dl
cmpb %dl, (%ecx)
jne Neq
testb %dl, %dl
je Eq
incl %eax
incl %ecx
jmp L
Eq: movl $1, %eax
ret
Neq:xorl %eax, %eax
ret
Fra le diverse soluzioni C possibili, quella da cui il programma IA32 è stato derivato mediante ##gcc## è:
short mistero(short* v, unsigned i, unsigned n) {
if (i>=n) return -1;
return v[i];
}
Fra le diverse soluzioni C possibili, quella da cui il programma IA32 è stato derivato mediante ##gcc## è:


Revision [1244]

Edited on 2015-11-25 23:32:13 by CamilDemetrescu
Additions:
.globl max
Deletions:
.globl max


Revision [1243]

Edited on 2015-11-25 23:31:54 by CamilDemetrescu
Additions:
==Esercizio 2 (istruzione if, parametri con indirezione)==
%%(asm;es2.s)
# int max(int* x, int* y) {
# if (*x > *y) return *x;
# return *y;
.globl max
max:
movl 4(%esp), %edx # x
movl 8(%esp), %eax # y
movl (%eax), %eax # a=*y
cmpl %eax, (%edx) # *x < *y
jl E
movl (%edx), %eax # a=*x
E: ret
==Esercizio 3 (istruzione while, somma dei numeri da 1 a n)==
%%(asm;es3.s)
==Esercizio 4 (istruzione while, uguaglianza di stringhe C)==
%%(asm;es4.s)
==Esercizio 5==
%%(asm;es5.c)
==Esercizio 6==
%%(asm;es6.c)


Revision [1242]

The oldest known version of this page was created on 2015-11-25 23:29:13 by CamilDemetrescu
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0212 seconds