Имея все это в виду, ваш код деления может быть скорректирован, чтобы принять 16-битный делитель:

огал своему другу отладить его программу, и мы сузили ее до проблемы, которая возникает даже здесь:

.MODEL small
.STACK 16
.CODE
start:
    mov ax, 044c0h
    mov bl, 85
    idiv bl
exit:
    mov ax, 4c00h
    int 21h

end start

После сборки с помощью tasm 4.1 и запуска его на DOSBox 0.74, он заходит в бесконечный цикл. При проверке с помощью отладчика турбо можно увидеть, что это происходит послеidiv инструкция, которая по какой-то причине изменяетcs а такжеip регистры, и после двух, казалось бы, случайных инструкций восстанавливает их, чтобы указать наidiv линия, выполняя это снова до бесконечности.

У кого-нибудь есть объяснение этому?

Ответы на вопрос(1)

Ваш ответ на вопрос