Одним из вариантов использования является тестовый файл EICAR , который является допустимым исполняемым COM-файлом DOS для тестирования антивирусных программ.
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Он должен использовать модификацию собственного кода, поскольку исполняемый файлдолжен содержать только печатные / печатаемые символы ASCII в диапазоне [21h-60h, 7Bh-7Dh], что значительно ограничивает число кодируемых инструкций
Подробности объяснены здесь
Он также используется для диспетчеризации операций с плавающей запятой в DOS
Некоторые компиляторы будут выдавать CD xx
с xx в диапазоне от 0x34-0x3B в местах команд x87 с плавающей запятой.Поскольку CD
- это код операции для инструкции int
, он будет переходить в прерывание 34h-3Bh и эмулировать эту инструкцию в программном обеспечении, если сопроцессор x87 недоступен.В противном случае обработчик прерываний заменит эти 2 байта на 9B Dx
, так что последующие выполнения будут обрабатываться непосредственно x87 без эмуляции.
Какой протокол используется для эмуляции с плавающей запятой x87 в MS-DOS?