А каким образом происходит отсчёт первых трёх секунд? Памяти то нет, где счётчик времени совои данные хранит? В регистрах процессора что ли?
Ну ладно. Что происходит, когда проходит 3 секунды? проц каждый раз проверяет содержимое регистра-счётчика, и когда он переполняется или в нем "насчитывается" какое то значение, то он куда то переходит? Значит нужно сделать так, чтобы либо счётчик не считал, либо регистр счётчика никогда не переполнялся, либо при переполнении чтобы не происходило никакого перехода (вместо JMP поставить NOP). Тогда всё будет работать бесконечно долго.