Cerca nel Blog

martedì 21 giugno 2011

Assembly: i registri dell'architettura x86

Ecco i registri delle CPU x86 nella sintassi Intel (la sintassi alternativa si chiama AT&T) per chi volesse cimentarsi in Assembly (tra parentesi l'uso tipico di ciascun registro):
  • Registri di uso generale:
    • EAX accumulatore (operazioni aritmetiche)
    • ECX contatore (mantiene il conto delle iterazioni in caso di loop)
    • EDX dati (operazioni aritmetiche con WORD: parte alta del risultato)
    • EBX base (puntatore ad instruzioni)
  • Puntatori ed Indici:
    • ESP puntatore allo stack
    • EBP puntatore base
    • ESI indice di origine
    • EDI indice di destinazione
    • EIP (punta all'istruzione che il processore stà leggendo)
  • Flags:
    • EFLAGS come segue:
      • CARRY FLAG (CF) indica se il risultato ha riporto
      • PARITY FLAG (PF) indica se il risultato ha un numero pari di 1
      • AUXILIARY CARRY FLAG (AF) indica se si produce riporto tra il bit 3 ed il 4 di un operando
      • ZERO FLAG (ZF) indica se il risultato ha valore nullo (può innescare jump)
      • SIGN FLAG (SF) indica il segno del risultato (può innescare jump)
      • OVERFLOW FLAG (OF) indica se l'operazione causa overflow (può innescare jump)
      • TRAP FLAG (TF) usato per il debugg interrompe il programma se ha valore 1
      • INTERRUPT FLAG (IF) usato per disabilitare le interruzioni esterne (se eguale a 0)
      • DIRECTION FLAG (DF) usato in operazioni su stringhe per indicare incremento o decremento dei registri indice
  •  Registri di segmento:
    • CS indirizzo di testa del segmento contenente il codice eseguibile
    • SS indirizzo di testa del segmento dello stack
    • DS indirizzo di testa del segmento dei dati
    • ES definisce eventuali segmenti ausiliari
Ed ora vediamo quanti Lamer si devasteranno la macchina...

Nessun commento:

Posta un commento

Lascia un commento. Condividi la tua opinione. Inizia il dialogo.