Non è questione di conversioni, DWORD PTR [indirizzo] è la sintassi Intel per dire che l'operando a cui si fa riferimento è una DWORD (32 bit) situata all'indirizzo specificato tra le quadre; essenzialmente è come dereferenziare un puntatore a int.
ESP contiene lo stack pointer corrente, ovvero la posizione della cima dello stack; normalmente su x86 lo stack cresce "verso il basso" (ovvero, parte da indirizzi alti e cresce verso indirizzi bassi), per cui all'inizio di ogni funzione troverai una cosa del tipo:non ho capito invece perchè bisogna mettere in esp( stack pointer ) + 0x18 il valore 262144?
dove 0x20 è un valore che cambia a seconda della funzione; questo espande lo stack verso il basso di 0x20 (32) byte, riservando così i byte in questione per le variabili locali. Quindi, nel resto della funzione, per fare riferimento allo spazio così riservato si usano sempre offset positivi rispetto a esp, come nel tuo caso.codice:sub esp, 0x20
Come ti è stato detto, 0x è un generico prefisso per l'esadecimale. In ogni caso, non è particolarmente rilevante il fatto che ti venga mostrato come tale, nell'eseguibile è memorizzato come valore binario "grezzo", è solo una scelta del disassembler mostrartelo in esadecimale o decimale.un altra cosa: 262144 è rappresentato in forma esadecimale ma quello che non mi è familiare è lo 0x davanti al valore( mi ricordavo che si utilizzava per gli indirizzi )... ma se con le costanti allora si usa questa forma, con gli indirizzi come si fa?