Witam. Mam w planach zrobienie programu, który będzie monitorował kolor pixela z danej pozycji, i gdy się zmieni to, aby jak najszybciej zareagował nie obciążając przy tym zbytnio komputera. Wystarczy, że będzie sprawdzał kolor przynajmniej 50 ms, wiec zrobiłem coś takiego, że co 100 powtórzeń petli wykona sprawdzanie. Chciałbym, abyście sprawdzili mój skrypt i doradzili jak naj optymalniej to zrobić. Dodam tez, że dopiero zaczynam z assemblerem, więc przepraszam jeśli popełniłem jakies banalne błędy.

Kod:

.data

    szFmt       db  "%#08x", 0
    szColor     db  "00F0F0F0h", 0
    szTak       db  "Zgadza sie", 0

.data?

    Buf         db  12 d*p (?)

.code

    mov al, 100   ; Ustawia 100 dla al

infinity:

    inc bx        ; zwiększa wartość bx o 1

    cmp al, bx      ; porównywanie  al i bx

    je jest         ;  skok do "jest" jeśli równe

jmp infinity

jest:

    mov al, 0
    invoke  GetDC, NULL
    invoke  GetPixel, eax, 200, 200

    invoke  wsprintf, offset Buf, offset szFmt, eax
    
    cmp szColor, offset Buf     ; Sprawdzenie czy kolor się zgadza

    je tak			; Skok do "tak" jeśli kolor się zgadza

tak:

    invoke  MessageBox, NULL, offset Buf, NULL, MB_OK