Таймер в сборе - PullRequest
       23

Таймер в сборе

0 голосов
/ 18 апреля 2020
macro timer_wait
    local wait_loop
    local change
    wait_loop:
        mov ah,2ch
        int 21h
        mov [prevMil],dl ;get first tick
        change:
            move ah,2ch
            int 21h
            cmp dl,[prevMil] ;check if we got a change in timer
            je change
endm timer_wait
proc Settings_Move
    mov si, offset arr.x
    Settings_1:
        add si,11
        cmp [byte ptr si],0
        jne Settings_1
        sub si,11
        print_tail 0
        call Touching_Apple_Check
        call Move_Snake
        mov [flagout],0
        call Touching_Himself
        cmp [flagout],1
        je exitset

        mov si, offset arr.x
        print_snake_node_loop:
            print_tail [colorsnake]
            add si,11
            cmp [byte ptr si],0
            jne print_snake_node_loop

        timer_wait ;THE ISSUE

        mov bx, offset arr.directionBefore
        copy:
            mov al,[bx+1]
            mov [bx],al
            add bx,11
            cmp [byte ptr bx],0
            jne copy
        exitset:
            ret

endp Settings_Move



enter image description here Я вызываю таймер макроса на l oop, пока таймер не изменит свое значение (в основном используется для ожидания движения змеи). Вы можете увидеть ошибку на картинке, предопределение определено как:

DATASEG prevMil db?

Я вызываю функцию таймера Спасибо за помощь!

...