Сообщение от
BlaireCas
Выполнится последний раз tstb в первом случае.
Это обычный вариант - засылка по готовности. И обычно проверяется ПЕРЕД пересылкой, а после, если всё закончилось - тупо оставляем до следующего раза (немного ускоряем программу, немного делаем меньше код). Насколько я помню от времён программирования на УК-НЦ - никаких проблем не должно быть.
Так же (делаем меньше код)
Код:
; can palka go left?
CanGoLeft:
; check min X
mov PalkaX, R1
beq 90$
; check stakan
mov PalkaY, R2
add #47., R2
asr R2
bic #^B111, R2 ; palka Y to stakan line addr
add R1, R2
dec R2
tstb Stakan(R2)
bne 90$
sec
return
90$: clc
return
обычно реализуют как
Код:
; can palka go left?
CanGoLeft:
; check min X
mov PalkaX, R1
beq 90$
; check stakan
mov PalkaY, R2
add #47., R2
asr R2
bic #^B111, R2 ; palka Y to stakan line addr
add R1, R2
dec R2
tstb Stakan(R2)
BEQ 100$
90$:
TST (PC)+
100$:
SEC
RETURN