|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 5
|
[C] Inline assembly e Salti
Ciao ragazzi,
qualcuno mi da una mano a costruire un salto in inline assembly? Sono un bel po' confuso. Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Compilatore e sistema operativo ?
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 5
|
gcc (ANSI C) e *nix...
Devo fare un mirobench di una istruzione di salto Codice:
#include <time.h>
int main(int argv, char **argc)
{
double a;
double b;
int count;
int i;
clock_t time1,time2;
time1 = clock();
b=1.01;
a=1.01;
count=1000000000;
__asm__ (".innerloop:\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"nop\n\t"
"sub $1, %2\n\t"
"jne .innerloop\n\t"
:
: "f" ((double)a), "f" ((double)b), "r" (count));
time2 = clock();
printf("%d, %d, %f\n",time1,time2,(double)(time2-time1)/CLOCKS_PER_SEC);
exit(0);
}
if (VARIABILE=TRUE) 10 nop else 20 nop. Devo studiare la latenza nella condizione di salto o no Grazie |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sinceramente non ho mai usato jmp nell'inline assembly. A cosa ti servono quegli \n e \t ?
Non credo che tu ce la faccia a misurare quella differenza. Supponendo un throughput di una istruzione ALU per ciclo di clock si tratta di misurare un tempo dell'ordine dei nanosecondi, ovviamente la risoluzione di clock() non è sufficiente (microsecondi). |
|
|
|
|
|
#5 | |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 5
|
Quote:
Per la questione della misurazione, ovviamente viene fatto un loop per poter rendere tangibili questi dati... |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
http://asm.sourceforge.net/articles/...html#InlineASM
http://asm.sourceforge.net/articles/...inline-asm.txt Qui fa un esempio con loop, con jmp dovrebbe essere la stessa cosa: http://www.ibm.com/developerworks/li...l?dwzone=linux |
|
|
|
|
|
#8 | |
|
Junior Member
Iscritto dal: Jan 2008
Messaggi: 5
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:50.




















