Size: a a a

Ассемблер

2021 April 19

A

Aleksandr in Ассемблер
это нуль-терминированные с длинной в первом байте
источник

С

Сергей in Ассемблер
И? Кто туда заносит? Правильно! Система после вычисления или планирования длины! Это круто, но сложнее
источник

С

Сергей in Ассемблер
О! Сначала вычисляешь или планируешь размер строки. Потом вычисляешь размер хранения длины и потом... Не слишком ли затратно?
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ты на фасме пишешь?
источник

С

Сергей in Ассемблер
У меня куча разработок с указанием размером данных. Это необходимость и это нормально. Но именно для работы со строками, когда они в динамике, эффективней использовать нулевое окончание
источник

С

Сергей in Ассемблер
В том числе.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
и как часто ты НЕ пользуешься макросами, допустим макросы для секции импорта? не уж то ты все отдаешь на волю самого фасма генерировать все это? я говорю что используя паскалевские строки нужно имееть и соответсвующие апи для них, как втом же делфи (или где они там первый раз появились)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
да взять тот же ввод строки на вин апи. разве функция не возвращает кол-во введенных символов?
источник

С

Сергей in Ассемблер
Я говорю про чуть более сложные проекты. Строки в которых динамические от и до. Ввод с клавиатуры, чтение из файлов и т.д. и т.п. Служебные строки конечно можно просто на этапе компиляции считать. Но это четверть капли в море же
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
мы точно про асм говорим?
источник

С

Сергей in Ассемблер
Именно
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
что за динамические строки?
источник

С

Сергей in Ассемблер
Например, получение данных из файла.
Недавно делал анализатор больших логов. Там ограничивал строки ПВ. Или, например, шифровальщик текста строго нуль использовал в запирании текста. Да много всяких примеров то.
Вот дерево значений по расчётным данным сделано, потому что данные то не обязательно строковые
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
поэтому и появилось такое разнообразие всего и вся. что каждое придумаю под решение той или иной задачи
источник

С

Сергей in Ассемблер
Да, но при прочих равных, если говорить про строки, у меня дешевле получается с нулём в конце 😄

В любом члучае надо знать оба варианта
источник

A

Aleksandr in Ассемблер
Как раз дешевле - без нуля, но с хранением длины
источник

A

Aleksandr in Ассемблер
Ибо эту самую длину все равно знать надо для работы со строкой, но при условии что мы не храним ее, а храним ноль - то приходится каждый раз ее рассчитывать
источник

С

Сергей in Ассемблер
Мммм... Всякие винапи требуют ноль, а значит уже в этом месте хранение размера лишнее.
Копировать строки не так часто же приходится. Вот когда копируешь их с места на место, тогда конечно фиксируешь размер, но это же редко
источник

A

Aleksandr in Ассемблер
А когда дописываешь в конец?
источник

A

Aleksandr in Ассемблер
Очень популярная операция, между прочим
источник