• Почему выполняются все метки?

    @semibiotic
    Данная конструкция работает в точности так же (так же неправильно) как switch в Си, в котором в case-ах ошибочно отсутствуют директивы break - выполнение идет через все кейсы, расположенные ниже.

    Как сделать аналог break в данном случае, уже сказано (jmp на новую метку в самом конце).

    Программа на языке ассемблера выполняется буквально сверху вниз, без каких-либо отклонений. Любое ветвление (в данном случае - обход ненужного кода) должно быть заданно явно инструкциями управления выполнением (jmp, jxx, call. ret, int).
    Ответ написан
    Комментировать