Я бы поспорил, что вы расшифровали код неправильно.В его нынешнем виде у вас есть бесконечный цикл.Это должно быть примерно так:
mov ax, 0201h
ploop: add al, ah
cmp al, 5
jb ploop
eloop:
Когда вы отправили сообщение, ax
перезагружается с 0201h
в начале каждой итерации цикла.Затем вы добавляете 02 в ah
к 01 в al
.Это даст 3. Вы сравниваете это с 5, и если оно меньше (очевидно, что так будет всегда), вы снова запускаете цикл.
С перемещенной меткой мы начинаем с 02в ah
и 01 в al
.Однако на каждой итерации цикла мы добавляем 02 к текущему содержимому al
, поэтому он будет следовать последовательности 1, 3, 5. На каждой итерации мы сравниваем его содержимое с 5 и продолжаем цикл, если и толькоесли он меньше чем (рассматривается как беззнаковый), то цикл с выполнением трех итераций, затем остановитесь с al = 5.