в языке Ассемблера инструкций условных
-----------------------------------------------------------------
Использование в языке Ассемблера инструкций условных перехо-
дов (JE, JNE, JC, JNC, JA, JB, JG и т.д) обеспечивает большую
гибкость в программировании, но при этом также очень просто оши-
биться, выбрав неверный переход. Кроме того, поскольку в языке
Ассемблера анализ условия и переход требуют по крайней меру двух
строк исходного кода (а сложных условных переходов нескольких
строк), условные переходы в языке Ассемблера менее очевидны и
больше способствуют ошибкам, чем соответствующие операторы Паска-
ля и Си.
Неверное понимание работы префикса REP
-----------------------------------------------------------------
Команды обработки строк имеют одну необычную особенность:
после их выполнения используемые ими указатели сдвигаются таким
образом, что указывают на адрес, отличающийся на 1 байт (или 2
байта, если если длина команды равна одному слову) от последнего
обработанного адреса. Это может привести к некоторой путанице при
повторении команд обработки строк, особенно команд REP SCAS и REP
CMPS.
Нулевое содержимое CX и работа с целым сегментом
-----------------------------------------------------------------
Повторное выполнении любых команд обработки строк при ра-
венстве нулю регистра CX не даст никакого результата. Это может
быть удобно в том смысле, что нет необходимости проверять его на
ноль перед повторным выполнением команд обработки строк. С другой
TDeb 3.0 #2-3 = 141 =
стороны, невозможно получить доступ к каждому байту в сегменте с
помощью байтовых команд обработки строк.
Неправильная установка флага направления
-----------------------------------------------------------------