djnz сначала делает декремент b, а потом проверяет на ноль. Т.е. мало того, что сравнивает с нулем не b, а b-1 (изначальное значение b), так ещё и имеет побочный эффект (b:=b-1). Тогда уже
inc b
djnz
djnz к тому же неприменимо, если нужен а) переход по b=0; b) длинный переход за проверкой; c) условный вызов процедуры.
Ну и иногда нужно просто проверить на ноль, без перехода после этого - только выставить флаги. Например, если за проверкой идет вызов процедуры, проверяющей флаг уже внутри себя.




Ответить с цитированием