Сообщение об ошибке #158 Invalid register combination

Недопустимая комбинация регистров.

Описание

Допустимые комбинации индексных регистров - [BX], [BP], [SI], [DI], [BX+SI], [BX+DI], [BP+SI] и [BP+DI]. Другие комбинации индексных регистров, типа [AX], [BP+BX] и [SI+DX], не позволяются.

Локальные переменные всегда распределяются на стеке и доступ к ним идет через регистр BP. Ассемблер автоматически добавляет [BP] в отношении таких переменных, так что даже если конструкция типа Local[BX] (где Local - локальная переменная) кажется правильной, это не так, так как в конце концов операнд станет выглядеть так: Local[BP+BX].