Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
Ситуация такая, в сегменте есть переменные, строки и тд и тп, но согласно алгоритму программы, сначала у дос выделим память, потом с диска загрузим шо надо. У меня получается шо как бы надо, но этот сегмент как бы уже в программе и место занимает соответственно, екзешник большой, как бы сделать шоб в программе я обращался к переменным как будто они уже в программе содержатся. но в екзешнике их небыло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2005, 14:42 |
|
||
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
Ты на ассемблере пишешь или на чем? Чем тебя не устраивает получить ссылку на выделеную память и запомнить эту ссылку в какой-либо своей переменной, а потом при нужде вытаскиваешь ссылку из памяти в регистр и...все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2005, 17:46 |
|
||
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
Пишу на тасме, попытаюсь еще раз объяснить, логический сегмент есть, физический его в программе нету, уже после запуска выделяется память, например : mov ah, 9 mov dx, exit_msg ; смещение на сообщение int 21h exit_msg - нету в программе, оно загружается позже из файла но шоб удобнее было объявить эту переменную так DTSG segment exit_msg DB 'Пока, до встречи' exit_msg_lng equ $-exit_msg DTSG ends Так вот если так собрать, то в теле программы будет этот сегмент и сами данные, а вот так бы шоб ссылки были, а в самой программе не было этого сегмента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 12:08 |
|
||
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
попробуй в сегмент кода запихать ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 16:11 |
|
||
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
MarmeladikПишу на тасме Нет, так как ты хочешь сделать не получится. Все метки объявленые в тексте исходника превращаются в константы во время компиляции. После этого их уже фиг изменишь :). Прийдется делать динамическую таблицу. У тебя будет одна динамическая таблица с указателями, одна ячейка таблицы (размером в слово) будет показывать на динамически выделеный кусок памяти в котором будет хранится уже конкретный текст. Размер мастер-таблицы будет соотвественно Количество_Текстов * Размер_Слова. Потрать одно слово в сегменте статичных данных на указатель на эту мастер-таблицу. А потом можно будет делать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Иех, давно я плюшками не баловался :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 18:35 |
|
||
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
ээ. в масме помню можно было определять сегмент в таком стиле: .data? St db 256 dup(?) ... значит сегмент содержит неинициализируемые переменные.( т.е. в екзехе его нету) за тасм - увы не скажу Если переменные объявишь так : st db 'adasdasdasd' .. // после всех инициализируемых! Msg1 db 256 dup(?) Msg2 db 256 dup(?) то похоже будет то что тебе надо..(в екзеху dup(?) войти не должны а указатели будут валидными) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2005, 19:25 |
|
||
|
Как объявить виртуальный сегмент в асме?
|
|||
|---|---|---|---|
|
#18+
Спасибо! Я поробую так и этак, фактически обращатся к переменым "объявив" в начале через equ, по поводу dup(?) - неинициализируемые данные, так по умолчанию тасм их инициализирует dup(0), но можно поставить ключ компилятору о совместимиости с масм или поиграть ключами при компиляции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2005, 10:59 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33086221&tid=1347651]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
136ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 472ms |

| 0 / 0 |
