Этот символ используется в MASM32:MASM32 Что означает «среднее значение кода по умолчанию»?
@CodeSize Возвращает целое число, представляющее расстояние код по умолчанию.
Я пытаюсь понять, что означает «дистанция кода по умолчанию»?
Тони
Этот символ используется в MASM32:MASM32 Что означает «среднее значение кода по умолчанию»?
@CodeSize Возвращает целое число, представляющее расстояние код по умолчанию.
Я пытаюсь понять, что означает «дистанция кода по умолчанию»?
Тони
Расстояние по умолчанию по умолчанию - NEAR или FAR.
@CodeSize может принимать два значения: 0 или 1, которое определяет, находятся ли переходы, вызовы и т. Д. В расстоянии NEAR или FAR.
Если вы используете модель памяти TINY, SMALL, COMPACT или FLAT, все прыжки и т. Д. NEAR, а @CodeSize == 0. Если вы используете модель памяти HARGE, LARGE, MEDIUM, als jumps и т. Д. . FAR и @CodeSize == 1.
Очень вероятно, максимальное расстояние (в байтах, в памяти) между двумя наиболее удаленными частями кода. Это может повлиять на то, как генерируются прыжки, поскольку могут быть разные инструкции, способные к разным длинам прыжка. Более короткий скачок может быть закодирован с более короткой (меньшей, часто быстрой) инструкцией.
This page упоминает, что число значений можно ожидать:
0 для TINY, маленький, компактный, и плоские моделей, и 1 для средних, крупных и ОГРОМНЫЕ модели (числовой приравнять).
Что именно имеется в виду с NEAR и FAR? Разве они находятся в текущем сегменте или за пределами текущего сегмента? –
Да, но для защищенного режима это намного сложнее, так как есть задействованные селекторы. В основном NEAR и FAR - разные режимы адресации, с дополнительным 16-битным компонентом для FAR-переходов, которые могут иметь очень разные значения в зависимости от режима работы. Точная спецификация находится в http://www.intel.com/Assets/PDF/manual/253666.pdf. Посмотрите в разделе «JMP FAR». – hirschhornsalz