Soyez le premier à donner votre avis sur cette source.
Vue 3 845 fois - Téléchargée 346 fois
;-------- cycle horloge.asm .586 .model flat,stdcall option casemap:none include cycle horloge.inc INCLUDELIB user32.lib INCLUDELIB kernel32.lib Maitre PROTO :DWORD GetModuleHandle TEXTEQU <GetModuleHandleA> ExitProcess PROTO dwExitCode:DWORD GetModuleHandle PROTO pString:PTR BYTE .data valeur dword 0 .code debut: invoke GetModuleHandle,0 invoke Maitre,eax invoke ExitProcess,0 Maitre proc Hdl_GetModuleHandle:dword CC mov valeur,eax ;-------------------------- ;instruction à mesurer en nombre de cycles d'horloge mov eax,5 A1: dec eax jnz A1 ;---------------------------- CC sub eax,valeur AFFdec ret Maitre endp end debut ;--------- cycle horloge.inc MessageBox TEXTEQU <MessageBoxA> MessageBox PROTO :DWORD,:DWORD,:DWORD,:DWORD AFFdec macro ;-------------------------- ; affiche la valeur entiere ; non signée de eax dans ; un messagebox ;-------------------------- LOCAL stocke,buffer,titre .data stocke qword 0 buffer BYTE 12 DUP(30h),0 ;12 caracteres+0 terminal titre BYTE "nombre de cycles d'horloge écoulés",0 .code mov dword ptr[stocke],eax mov esi,offset buffer add esi,11 ;pointe sur dernier caracteres=celui de droite mov ecx,0 divise: mov edx,dword ptr stocke+4 mov eax,dword ptr stocke mov ebx,10 div ebx mov dword ptr stocke,eax add edx,30h mov [esi],dl dec esi cmp eax,0 ja divise ;affichage du temps invoke MessageBox,0,addr buffer,addr titre,0 endm CC macro ;rdtsc=read TSC=Time Stamp Counter=compte les cycles ;d'horloge,renvoie le resultat dans edx:eax ;=0 au reset .code rdtsc endm
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.