scasb
Str db “fasm”,0 ;строка .sizeof = $ - str ; размер Размер в байтах без учета завершающего нуля
Но только для статика.
Наверное , я пока не знаю
А куда ноль девается?
Не знаю, но я читал, что он не учитывается
Он стрленом не учитывается, а тут простая арифметика.
$ показывает текущий адрес https://metanit.com/assembler/nasm/3.3.php
Это с учётом нуля.
Никуда не девается, все учитывается.
а если не статик
Может, отчет с 0 начинается и потом ноль заверщающий уравновешивает Типо fasm,0 01234
Нет никакого отсчёта. Размер вычисляется за счёт арифметики указателей
То есть разница байта с которого начинается строка, и которым заканчивается?
А точнее байта после неё
Символ $ указывает на текущий адрес. Нет, не нулевого, а того, который после нулевого
Не совсем понимаю, что Вы подразумеваете под «динамикой» Но repe scasb выглядит неплохо
Динамика значит строка находится в динамической памяти или поступает функции как аргумент, например, и на этапе компиляции длину строки вычислить невозможно
Под динамикой имеется в виду реализация функции strlen. А $-str это то же самое, что написал в исходном коде строку, и посчитал пальцем сколько букв. Только фасм немного в этом помог
Я бы strlen макросом реализовывал)
Обсуждают сегодня