Да, программы, написанные для работы в среде DOS, могут иметь виртуальные адреса. 3
Как правило, такие программы написаны для реального режима работы процессора, в котором отсутствует трансляция адресов и все адреса являются физическими. 1 Однако для процессоров начиная с 80386 существуют DOS-экстендеры, например, DOS4GW из комплекта компилятора Watcom C/C++, которые позволяют переходить в защищённый режим работы, в котором уже есть менеджер виртуальной памяти. 1
Также в современных системах, предназначенных для работы на процессорах с сегментной или страничной организацией памяти, программа даже после загрузки в память содержит виртуальные адреса. 3 Преобразование в физические адреса выполняется при выборке каждой команды из памяти, при обращении к ячейкам данных — то есть при каждом использовании адреса. 3