Ho cercato per la scorsa settimana di trovare una risorsa decente sull'aritmetica in virgola mobile per l'assembly x86 utilizzando la sintassi AT & T. Idealmente, un elenco degli opcode, cosa fanno e dove sono memorizzati i float. Conosco la rappresentazione IEEE 754. Non ho familiarità con lo stack in virgola mobile e qualsiasi assembly che si riferisce all'aritmetica in virgola mobile.Un riferimento per aritmetica in virgola mobile in assembly di sintassi AT & T
È strano quanto sia difficile da trovare.
EDIT: Ho esaminato l'output gcc -S per il mese scorso, imparando l'assemblaggio. È così che ho capito tutto tranne l'aritmetica in virgola mobile. Anche dopo aver esaminato dozzine di piccoli programmi compilati senza ottimizzazioni, non riesco ancora a capire molto sugli opcode in virgola mobile e lo stack. Ho trovato solo esempi banali online.
Modifica: quindi, seguire il suggerimento per leggere 'libm' e leggere i manuali di Intel. Mi dispiace, non hai alternative. Ci sono _no_ decenti risorse basate sulla sintassi AT & T, perché _nobody_ è seriamente usato dalla programmazione assembly x86. –
Ok, quindi ero un po 'troppo severo nel dire che nessuno usa seriamente la sintassi AT & T. Ad ogni modo, se usi Google per "devpro-libm", puoi scaricare il codice 'libm' usato in OpenSolaris. Questo può essere un download più leggero di 'glibc'. Quindi, guarda nella directory 'usr/src/libm/src/i386/common' --- è una miniera d'oro di un assembly in virgola mobile, tutto scritto in sintassi AT & T. –
Stavo proprio per scaricarlo. Grazie :) Inoltre, non mi piace la sintassi AT & T e presenta alcune gravi incongruenze, ma devo usare quello che devo usare. Nonostante sia sintassi Intel, [questo] (http://www.programmers-corner.com/tutorial/31) è una guida concisa simile a ciò che stavo cercando. Le modifiche per adattarsi alla sintassi AT & T sono facili. – Kizaru