PDA

Visualizza la versione completa : [C++]Il comando asm


Luc@s
26-06-2002, 20:57
A cosa serve il comando asm ??????
Come compilatore uso quello nella firma

steno12
26-06-2002, 23:56
Un esempio, è costituito dalla funzione GetCPUCycle che ritorna, sempre in un LONGLONG (valore a 64 bit) il numero di cicli di clock trascorsi dall’accensione del sistema. Questa funzione sfrutta l’istruzione macchina RDTSC della CPU; non tutte le CPU però, dispongono di tale istruzione e quindi la funzione, in qualche caso, potrebbe fallire. Per questa funzione, il codice deve essere inserito in assembler sfruttando la direttiva _asm di VC. La parte fondamentale della funzione è costituita dalle seguenti istruzioni

__asm {
rdtsc
lea ebx,res
mov [ebx],eax
mov [ebx+4],edx
}

Come avrai capito puoi inserire l'istruzione, racchiusa tra le parentesi, per far svolgere dei comandi in assembler al vc6.
E' usata spesso nei videogiochi, un esmpio è fifa, il gioco di calcio, dove i programmatori, per velocizzare ed avere un codice più efficiente del c, addotano tale procedure asm nell'applicazione delle varie telecamere sul campo di gioco ecc, ecc., in quanto il c non sfrutterebbe appieno determinate risorse ecc, ecc.


link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
software
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/programmi/programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/public/twforum/default.asp

r0x
27-06-2002, 01:15
Quante chiacchiere!

Basta dire che permette di inserire codice assembly inline in un listato C/C++. FINE!!!!!!!!!!

steno12
27-06-2002, 02:13
.......mi sono dimenticato:
che ci può stare anche una sola riga

int r0x = 0, miav = 3
asm MOV EAX, miav;
oppure più di una riga usando per l'appunto le parentesi
asm {
ADD EAX, 3
SUB EAX, miav
}

.......fai anche molta attenzione in quanto puoi provocare anche seri danni......... blocchi prg., della macchina ecc, ecc.......

steno12
27-06-2002, 03:28
Per concludere.........
puoi utilizzare vb per richiamare, o una dll scritta in asm, oppure una dll (non MFC) scritta in c dove oltre al codice c, puoi inserire codice asm come sopra........

in questi link troverai gli esempi con relativi progetti.......

link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
software
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/programmi/programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/public/twforum/default.asp

Luc@s
27-06-2002, 08:40
tnk steno

Loading