code assembly
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Visualizzazione risultati da 1 a 10 di 10

Discussione: code assembly

Cambio titolo
  1. #1
    Veterano L'avatar di stackframe
    Registrato il
    11-04
    Località
    Taiwan
    Messaggi
    535

    Sorrisone code assembly

    mi date una mano?:bonk:
    avrei bisogno di una spiegazione riga per riga del seguente codice:
    gdb) disas phase_5
    Dump of assembler code for function phase_5:
    0x08048c80 <phase_5+0>: push %ebp
    0x08048c81 <phase_5+1>: mov %esp,%ebp
    0x08048c83 <phase_5+3>: push %esi
    0x08048c84 <phase_5+4>: push %ebx
    0x08048c85 <phase_5+5>: sub $0x1c,%esp
    0x08048c88 <phase_5+8>: mov 0x8(%ebp),%ebx
    0x08048c8b <phase_5+11>: push %ebx
    0x08048c8c <phase_5+12>: call 0x8048f60 <string_length>
    0x08048c91 <phase_5+17>: add $0x10,%esp
    0x08048c94 <phase_5+20>: cmp $0x6,%eax
    0x08048c97 <phase_5+23>: je 0x8048c9e <phase_5+30>
    0x08048c99 <phase_5+25>: call 0x8049480 <explode_bomb>
    0x08048c9e <phase_5+30>: mov $0x0,%edx
    0x08048ca3 <phase_5+35>: lea 0xffffffe8(%ebp),%ecx
    0x08048ca6 <phase_5+38>: mov $0x804b200,%esi
    0x08048cab <phase_5+43>: nop
    0x08048cac <phase_5+44>: lea 0x0(%esi,1),%esi
    0x08048cb0 <phase_5+48>: mov (%edx,%ebx,1),%al
    0x08048cb3 <phase_5+51>: and $0xf,%eax
    0x08048cb6 <phase_5+54>: movsbl %al,%eax
    0x08048cb9 <phase_5+57>: mov (%eax,%esi,1),%al
    0x08048cbc <phase_5+60>: mov %al,(%edx,%ecx,1)
    0x08048cbf <phase_5+63>: inc %edx
    0x08048cc0 <phase_5+64>: cmp $0x5,%edx
    0x08048cc3 <phase_5+67>: jle 0x8048cb0 <phase_5+48>
    0x08048cc5 <phase_5+69>: movb $0x0,0xffffffee(%ebp)
    0x08048cc9 <phase_5+73>: sub $0x8,%esp
    0x08048ccc <phase_5+76>: push $0x8049808
    0x08048cd1 <phase_5+81>: lea 0xffffffe8(%ebp),%eax
    0x08048cd4 <phase_5+84>: push %eax
    0x08048cd5 <phase_5+85>: call 0x8048f80 <strings_not_equal>
    0x08048cda <phase_5+90>: add $0x10,%esp
    0x08048cdd <phase_5+93>: test %eax,%eax
    0x08048cdf <phase_5+95>: je 0x8048ce6 <phase_5+102>
    0x08048ce1 <phase_5+97>: call 0x8049480 <explode_bomb>
    0x08048ce6 <phase_5+102>: lea 0xfffffff8(%ebp),%esp
    0x08048ce9 <phase_5+105>: pop %ebx
    0x08048cea <phase_5+106>: pop %esi
    0x08048ceb <phase_5+107>: pop %ebp
    0x08048cec <phase_5+108>: ret
    0x08048ced <phase_5+109>: lea 0x0(%esi),%esi
    Ultima modifica di stackframe; 30-11-2004 alle 12:11:58

  2. #2
    Utente
    Registrato il
    06-04
    Messaggi
    190
    edita che è pieno di faccine nel codice(che già non è proprio facilissmo da leggere...)

  3. #3
    Veterano L'avatar di stackframe
    Registrato il
    11-04
    Località
    Taiwan
    Messaggi
    535
    misto allora mi aiuti??

  4. #4
    Utente L'avatar di pentothal
    Registrato il
    10-02
    Località
    Firenze
    Messaggi
    4.692
    se devo essere sincero non ho mai visto un assembly scritto cosi... sono rimassto all'assembly degli 8086 questo sembra essere molto più complesso a causa dell'evoluzine delle cpu e quindi del set di istruzioni e del numero dei registri... cmq se ti interessa sapere a che servono quelle istruzioni ti posso dare una mano ma se vuoi sapere cosa fa quel segmento di codice... proprio non saprei...

  5. #5
    Veterano L'avatar di stackframe
    Registrato il
    11-04
    Località
    Taiwan
    Messaggi
    535
    grazie lo stesso ho risolto da me. non era così difficile

  6. #6
    Utente L'avatar di pentothal
    Registrato il
    10-02
    Località
    Firenze
    Messaggi
    4.692
    Citazione stackframe
    grazie lo stesso ho risolto da me. non era così difficile
    Ci illumineresti sulla sua utilità?

  7. #7
    Utente
    Registrato il
    06-04
    Messaggi
    190
    Citazione stackframe
    grazie lo stesso ho risolto da me. non era così difficile
    'azz.sei una scheggia...cosa fa 'sto robo che hai scritto?io ho capito poco in verità

  8. #8
    I'm sick and tired. L'avatar di il_mitch
    Registrato il
    10-04
    Messaggi
    7.148
    Citazione stackframe
    grazie lo stesso ho risolto da me. non era così difficile
    gigi sei un mostro .. , come diavolo hai fatto?

    di la verità ti ha aiutato andrè.......
    ex utente della sezione Hardware
    *esiste un solo mod*
    I siti seri per parlare di hardware sono altri. Chiarimenti su msn o in privato.



  9. #9
    Veterano L'avatar di stackframe
    Registrato il
    11-04
    Località
    Taiwan
    Messaggi
    535
    prende come stringa becdka

  10. #10
    Veterano L'avatar di stackframe
    Registrato il
    11-04
    Località
    Taiwan
    Messaggi
    535
    adesso vi spiego meglio:

    allora voi inserite 6 lettere, quindi viene fatta una and di ciascuna lettera con 0xf(15) e si piglia il valore (per esempio con b risulta 2) .Poi nel registro esi è contenuta una stringa isr....... il due diventa la posizione dell'array. quindi con b piglia r . infine con la stringa becdka compone la stringa ravens, che è il valore che staimo cercando.
    cioè dopo il loop va a controllare se abbiamo inserito le giuste lettere, che formano ravens.
    cioa

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •