Español
Ensamblador Foro

Hecho: Pixel conjunto, welche Register sichern

 
Welche Register necesario hier gesichert voluntad.
Oder se el de Xpia4 o XProfan übernommen el richtige Sichern de Registern?

mfg
KompilierenMarcaSeparación
 $MAKE CLE
 $H Windows.ph
Declare hwin&,x&,y&,f&,hdcwin&
Window 20,20-200,200
hWin& = Create(Window, %hWnd, Test, 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)

If 0

    AsmStart pset

        Parameters hdcwin&,x&,y&,f&
        mov ecx,para1
        mov eax,para2
        mov ebx,para3
        mov edi,para4
        invoke SetPixel,ecx,eax,ebx,edi

    AsmEnd

EndIf

whileloop 0,100,1

    x&=&loop
    y&=&loop
    f&=$ff0000
    Call(GetXpiaProcAddress(XpiaModule&,pset),hdcwin&,x&,y&,f&)

endwhile

WaitInput
End
 
15.05.2009  
 




Frank
Abbing
Quasi jede API verändert el Register. Wenn du el Daten después de el API otra vez benutzen willst, musst du ellos vorher en el Stack pushen y später otra vez runternehmen. Oder Variables uso.
Welche Register una API benutzt, es siempre verschieden. Usted puede auch nie bastante sicher ser, que un Register no verändert se. Das kann se en nächsten Betriebssystem ya geändert haben.
Das hier va de paso auch:
KompilierenMarcaSeparación
 
15.05.2009  
 



Jup,danke.

Was macht el Profano2Cpp-Solución?

mfg
 
15.05.2009  
 




Sebastian
König
2peter Bierbach, Beitrag=52367, Zeitpunkt=15.05.2009

Was macht el Profano2Cpp-Solución?


Franco ha me vorhin erklärt, qué se en XPIA geändert ha. Yo voluntad entonces demnächst mein Plug-In daran adaptar. Kann aber algo dauern, como Yo a Tiempo muy con otro Dingen beschäftigt bin...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
15.05.2009  
 



Jup, alles klar.

El erstellten Dll de Xpia4 laufen con el Profano2Cpp wunderbar.

Posesiones ahora veces 2 Exe erstellt con XProfan.
Einmal con Asmstart/Asmend y una vez con el oben erstellten Dll.

Mit Asmstart/Asmend 10200 Zeiteinheiten y el gleiche con el Dll 4550 Zeiteinheiten.
El Profano2Cpp se ejecuta a Tiempo sólo el Xpia4-Dll y braucht 4100 Zeiteinheiten.

Mit Dll :
KompilierenMarcaSeparación
 $H Windows.ph
DEF createpen(3) ! asm_grafik1.dll,createpen
DEF lineto(3) ! asm_grafik1.dll,lineto
DEF movetoex(3) ! asm_grafik1.dll,movetoex
DEF pset(4) ! asm_grafik1.dll,pset
Declare hwin&,x&,y&,f&,hdcwin&,pstyle&,pwidth&,pcolor&,mypen&,test%
Window 20,20-200,200
hWin& = Create(Window, %hWnd, Test, 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)
pstyle&=3
pwidth&=0
pcolor&=$ff0000
mypen&=createpen(pstyle&,pwidth&,pcolor&)
~SelectObject( hdcwin&, mypen& )
test%=&GetTickCount

whileloop 1,10000,1

    x&=200
    y&=200
    movetoex(hdcwin&,x&,y&)
    x&=400
    y&=40
    lineto(hdcwin&,x&,y&)

endwhile

Print Str$(Int(&GetTickCount-test%))
WaitInput
End

Ohne Dll:
KompilierenMarcaSeparación
 $MAKE CLEI
 $H Windows.ph
Declarar hwin&,x&,y&,f&,hdcwin&,pstyle&,pwidth&,pcolor&,mypen&,test%
Ventana 20,20-200,200
hWin& = Crear(Ventana, %hWnd, Test, 250, 20, 650,500)
hDCWin& = ~GetWindowDC(hWin&)

If 0

    AsmStart createpen

        Parámetros pstyle&,pwidth&,pcolor&
        invoke CreatePen,para1,para2,para3

    AsmEnd(mypen&)

    AsmStart movetoex

        Parámetros hdcwin&,x&,y&
        invoke MoveToEx,para1,para2,para3,0

    AsmEnd

    AsmStart pset

        Parámetros hdcwin&,x&,y&,f&
        invoke SetPixel,para1,para2,para3,para4

    AsmEnd

    AsmStart lineto

        Parámetros hdcwin&,x&,y&
        invoke LineTo,para1,para2,para3

    AsmEnd

EndIf

pstyle&=3
pwidth&=0
pcolor&=$ff0000
mypen&=Call(GetXpiaProcAddress(XpiaModule&,createpen),pstyle&,pwidth&,pcolor&)
~Seleccionar objeto( hdcwin&, mypen& )
test%=&GetTickCount

whileloop 1,10000,1

    x&=200
    y&=200
    Call(GetXpiaProcAddress(XpiaModule&,movetoex),hdcwin&,x&,y&)
    x&=400
    y&=40
    Call(GetXpiaProcAddress(XpiaModule&,lineto),hdcwin&,x&,y&)

endwhile

Imprimir Str$(Int(&GetTickCount-test%))
WaitInput
End

mfg

2 kB
Hochgeladen:15.05.2009
Ladeanzahl186
Descargar
 
15.05.2009  
 




Sebastian
König
Ist el ahora sólo una Ejemplo oder por qué kapselt du esta einfachen API-Aufrufe en DLL-Características? Yo mi, una einfaches

DEF SetPixel(3) !GDI32,SetPixel
usw.

es doch sicher el effizienteste Solución...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
15.05.2009  
 



es doch sicher el effizienteste Solución...

Wird vom Tool, welches en Xpia4 con esta es, así angefertigt para el Aufruf.

Ist el ahora sólo una Ejemplo oder por qué kapselt du esta einfachen API-Aufrufe en DLL-Características?

El Routinen fueron veces con invoke encima Xpia4 aufgerufen. Ist una Funktionstest.

mfg
 
15.05.2009  
 




Frank
Abbing

es doch sicher el effizienteste Solución...


El effizienteste Solución es wohl, auch el Bucle en ASM a programa.
 
16.05.2009  
 



El effizienteste Solución es wohl, auch el Bucle en ASM a programa.

El Scheife selber es con Profano2Cpp ya una Blitz, wo lo sí ahora wunderbar encima el Aufruf de Xpia4 se ejecuta.

Yo quería sólo veces el wesentliche Testen.

mfg
 
16.05.2009  
 




Sebastian
König
2peter Bierbach, Beitrag=52377, Zeitpunkt=16.05.2009
El effizienteste Solución es wohl, auch el Bucle en ASM a programa.

El Scheife selber es con Profano2Cpp ya una Blitz, wo lo sí ahora wunderbar encima el Aufruf de Xpia4 se ejecuta.

Yo quería sólo veces el wesentliche Testen.


Mir ging lo ahora sólo por lo tanto, dass uno einfache API-Características auch direkt con DEF o. Externo() uso kann - una Kapselung en una ASM-Block bringt sólo zusätzlichen Overhead con se...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
16.05.2009  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

10.990 Views

Untitledvor 0 min.
funkheld31.08.2023
p.specht14.06.2021
RudiB.15.01.2016
Georg Teles09.01.2016
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie