Вопрос № 122983: Здравствуйте!
Для определения длины строки часто используют следующий маневр:
stroka db 'Olimpus-2007'
stroka_l equ $-stroka
и в stroka_l будет длина.
Я не совсем понял, откуда компилятор понимает, что вместо str...Вопрос № 123100: Здравствуйте!
С увлечением дочитал рассылку Калашникова по ассемблеру под DOS.
32-й выпуск начал публикацию под Windows. Не подскажете, существует ли продолжение?
...
Вопрос № 122.983
Здравствуйте!
Для определения длины строки часто используют следующий маневр:
stroka db 'Olimpus-2007'
stroka_l equ $-stroka
и в stroka_l будет длина.
Я не совсем понял, откуда компилятор понимает, что вместо stroka в формулу нужно подставлять ее адрес, а не содержимое? Ведь наверное правильнее формула выглядела бы так:
stroka_l equ $-offset stroka
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Бартосик Феликс Михайлович!
Компилятор знает о том, что нужно брать адрес т.к. первый операнд выражения $ уже определен - т.е. текущий адрес в сегменте. В ассемблере нет четкого разделения перменных на типы как в языках высокого уровня и любая переменная определяется как адрес(сегмент, смещение) и размер в байтах. В данном случае берется адрес. Если нужно значение этой переменной, то её имя записывается в квадратных скобках. Допустимы обе записи.
Удачи!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 13.02.2008, 15:44 Оценка за ответ: 5 Комментарий оценки: Спасибо Константин Николаевич!
Все понятно.
Вопрос № 123.100
Здравствуйте!
С увлечением дочитал рассылку Калашникова по ассемблеру под DOS.
32-й выпуск начал публикацию под Windows. Не подскажете, существует ли продолжение?
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Бартосик Феликс Михайлович!
Полный aрхив рассылки на Subscribe.
Начиная с 12.07.2006 рассылка приобретает вид вопрос - ответ.
Удачи Вам!
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 14.02.2008, 13:16 Оценка за ответ: 5 Комментарий оценки: Спасибо Константин Николаевич за все советы, также за указанные книги и рассылку.
P.S. На мини-форум по вопросу 122807 я добавил некоторые дополнения в своем последнем сообщении.