Люди, я понимаю, бред, но вопрос задаю от безисходности... Если честно, ужасно стыдно спрашивать.. Что означает инструкция типа lalala equ $-4? Точнее, c equ я знаком оч. хорошо.. в тупик поставило $-4. Втречал $+5, $-3.. Искал в инете - результ ноль... В справочнике комманд, директив и пр. тож нефига (а может просто справочники такие...) Огромная просьба у наших умельцев- объясните по русски, что такое "$" и цифра после нее... и +/- ... если это не действия, то что..? Заранее спасибо... Очень стыдно за подобный вопрос...
Это адрес тукущей инструкции / ячейки памяти. Например: Код (Text): metka1 db 1,2,3 metka1_len equ $ - metka1 metka1_len будет равно 3. Ещё пример: Код (Text): jmp $ Это всё равно что Код (Text): metka2: jmp metka2 т.е. это бесконечный цикл.
На всякий случай уточнение: вышесказанное справедливо для masm В fasm для достиженеия такого же результата лучше использовать "=" вместо EQU. Код (Text): metka1 db 1,2,3 metka1_len = $ - metka1 ; metka1_len присваисается ЧИСЛО, равное текущему адресу минус metka1 ; здесь разные команды mov eax, metka1_len ; получим mov eax, 3 но: Код (Text): metka1 db 1,2,3 metka1_len equ $ - metka1 ; metka1_len присваисается ТЕКСТ "$ - metka1" ; здесь разные команды mov eax, metka1_len ; эквивалентоно mov eax, $ - metka1 ; где $ равно адресу команды mov eax