Ключевое слово offset
необходимо использовать только при немедленном использовании адреса.В других контекстах, например, в качестве данных, его нельзя разыменовать, так что символ - это адрес.
Компиляторы обычно используют такие вещи, как .size chk0, . - chk0
.Таким образом, вы, вероятно, хотите, чтобы
.equ chk0_sz, . - chk0 # at the end of chk0
.
была текущей позицией, она заменяется на chk0_e
, если вы поставите .equ
в этой позиции.
И, очевидно, выне может использовать rcx
(регистр) как часть вычисления постоянной времени сборки.Или вы имели в виду от mov rcx, offset chk0_sz
до использовать размер?
Если вы определите его как постоянную времени сборки с .equ
, вы просто сделаете mov ecx, chk0_sz
.Синтаксис в стиле MASM несовместим, так что это mov-немедленный, а не загрузка из-за того, как было определено chk0_sz
.