Mer 21 Agosto, 09:30:04 - 2019

Autore Topic: AIUTO Esercizio 4 - 17/06/14  (Letto 990 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline xian89

  • Studente
  • *
  • Post: 46
  • FeedBack: +3/-1
    • Mostra profilo
AIUTO Esercizio 4 - 17/06/14
« il: Mer 03 Settembre, 16:09:43 - 2014 »
Tradurre in C la seguente funzione x86-64, ricordando che nel System V AMD64 ABI il primo parametro è nel registro rdi e il valore di ritorno nel registro rax:

f:    cmpl $0, %edi
      je L1
      pushq %rdi
      decl %edi
      call f
      popq %rdi
      addl %edi, %eax
      ret
L1: xorl %eax, %eax    # equivalente a movl $0, %eax
      ret

Ragazzi io penso che fa un if(edi==0), dove edi sara il primo parametro di f che è un int, e poi in un ramo c'è una ricorsione dato che mette in stack edi, ne decrementa il valore, richiama f e dopo toglie dalla stack, mentre nell'altro si ha il passo base con return 0.
Pero sicuramente ho sbagliato e non riesco proprio a tradurla.
Qualcuno mi sa aiutare con la soluzione?



Inoltre posto anche il testo dello stesso esercizio del compito A:

f:    cmpl $0, %edi
      je L2
      xorl %eax, %eax  # equivalente a movl $0, %eax
      movl $1, %ecx
L1: addl %ecx, %eax
      incl %ecx
      cmpl %edi, %ecx
      jbe L1
      ret
L2: xorl %eax, %eax
      ret


Se qualcuno posta la sua soluzione anche di questo ve ne sono grato.
« Ultima modifica: Mer 03 Settembre, 18:38:58 - 2014 da xian89 »

Offline andrea89

  • Author
  • Professore Ordinario
  • **
  • Post: 733
  • FeedBack: +76/-17
    • Mostra profilo
Re:AIUTO Esercizio 4 - 17/06/14
« Risposta #1 il: Gio 04 Settembre, 13:43:53 - 2014 »
ciao.ti allego il pdf con le mie soluzioni.spero ti siano utili.
« Ultima modifica: Ven 05 Settembre, 11:45:25 - 2014 da andrea89 »
ll computer non è una macchina intelligente che aiuta le persone
stupide, anzi è una macchina stupida che funziona solo nelle mani delle persone intelligenti (Umberto Eco).

Offline xian89

  • Studente
  • *
  • Post: 46
  • FeedBack: +3/-1
    • Mostra profilo
Re:AIUTO Esercizio 4 - 17/06/14
« Risposta #2 il: Gio 04 Settembre, 14:00:51 - 2014 »
Grazie mille!
Sei stato gentilissimo.

Offline andrea89

  • Author
  • Professore Ordinario
  • **
  • Post: 733
  • FeedBack: +76/-17
    • Mostra profilo
Re:AIUTO Esercizio 4 - 17/06/14
« Risposta #3 il: Gio 04 Settembre, 14:03:03 - 2014 »
di nulla.ho svolto tutti gli appelli.tutti rigorosamente sistemati in latex. se ti dovessero servire chiedi pure.
ll computer non è una macchina intelligente che aiuta le persone
stupide, anzi è una macchina stupida che funziona solo nelle mani delle persone intelligenti (Umberto Eco).

Offline LiquidSnake

  • Neo-Laureato
  • **
  • Post: 55
  • FeedBack: +4/-0
    • Mostra profilo
Re:AIUTO Esercizio 4 - 17/06/14
« Risposta #4 il: Dom 25 Gennaio, 19:24:49 - 2015 »
Ciao andrea89, sarebbe possibile avere gli appelli svolti di cui parli? Grazie anticipatamente  :) :)
Qualsiasi cosa succeda, prendila con tranquillezza!

Offline lizard

  • Studente
  • *
  • Post: 41
  • FeedBack: +8/-0
    • Mostra profilo
Re:AIUTO Esercizio 4 - 17/06/14
« Risposta #5 il: Lun 26 Gennaio, 05:04:41 - 2015 »
Mi accodo anche io alla richiesta  ;D

Offline Atif

  • Studente
  • *
  • Post: 2
  • FeedBack: +1/-0
    • Mostra profilo
Re:AIUTO Esercizio 4 - 17/06/14
« Risposta #6 il: Sab 09 Gennaio, 17:15:56 - 2016 »
Ciao andrea89, potresti gentilmente pubblicare gli appelli svolti
 Grazie anticipatamente  :) :)