Можно ли объявлять данные в сегменте кода?
Добавлено: 26 апр 2009, 14:33
Здравствуйте. Я программирую на ассемблере. Вопрос: можно ли в сегменте кода выделять память для данных? Примерно так:
jmp $+4
byte1 db 0
byte2 db 0
я ассемблирую с помощью TASM. Знак доллара означает текущий адрес. Jmp $+4 перепрыгивает саму инструкцию jmp (два байта), плюс два байта объявленных далее. То есть идея такова: в сегменте кода я выделяю кусок, который, если всё правильно сделать, никогда не будет исполняться, а пользоваться я им буду для хранения некоторых данных.
Программа с такими конструкциями нормально компилируется, линкуется.
jmp $+4
byte1 db 0
byte2 db 0
я ассемблирую с помощью TASM. Знак доллара означает текущий адрес. Jmp $+4 перепрыгивает саму инструкцию jmp (два байта), плюс два байта объявленных далее. То есть идея такова: в сегменте кода я выделяю кусок, который, если всё правильно сделать, никогда не будет исполняться, а пользоваться я им буду для хранения некоторых данных.
Программа с такими конструкциями нормально компилируется, линкуется.