Мне необходимо, чтобы при загрузке программы данные из секции директивы Virtual были помещены в другой сегмент. Как это можно реализовать? Я просто так и не понял: Virtual может работать с реальными адресами или нет. Т.е надо что-то типа этого: Код (Text): Data_Seg equ 2000h virtual Data_Seg * 10h + 100h ; 100h - смещение в сегменте 2000h ... ... end virtual Помогите разобраться, пожалуйста.
Что то не понял. Тебе надо после загрузки сделать инит каких то данных в сегменте типа "BSS"? А Virtual я сам не знаю че за директива. Че за пакет хоть? В MASM я такого не видел.
virtual может работать с любыми адресами, но не может где-либо сохранять данные, кроме текущего "воображаемого" пространства. Нужно записать данные в нужный сегмент явно, т.е. программно, или, если сегмент находится в пределах твоего программного образа, можно использовать директиву store.
Простой пример. Код (Text): virtual at 0x500 var dw ? ; или константа - эффект тот же end virtual xor ax,ax mov ds,ax mov [var],VALUE ; запись VALUE в 0:0x500 var можно было объявить и так: label var word at 0x500