В процессе обратного проектирования ПЗУ контроллера IDE я заметил, что каждая инструкция in
или out
сопровождается двумя инструкциями jmp short
, которые просто переходят к следующей инструкции (опкод EB00
), например так:Назначение jmp short после ввода порта ввода-вывода в x86
out dx, al
jmp short next1
next1:
jmp short next2
next2:
; code continues
Что именно это рассуждение позади этой модели?
Чтобы обеспечить небольшую задержку. Это были устройства, требующие задержки между доступом к их портам. На 8086 каждый из этих прыжков должен выполнить 15 циклов. –