MASM: вывод на консоль текущего адреса

Тема в разделе "WASM.BEGINNERS", создана пользователем rmn, 24 авг 2006.

  1. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    Нужно что-нибудь вроде echo $. Можно такое в масме сделать?
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Код (Text):
    1. mov eax, $
    2. printf("%X", eax);
    =)
     
  3. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    Хм. Видимо, неправильно вопрос задал. Имеется в виду во время компиляции. :)
     
  4. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    Код (Text):
    1. Mycount = $
    2. %echo @CatStr(%Mycount)
    мот проканает незнаю масм не юзаю
     
  5. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    нет, не хочет так. Говорит constant expected.
     
  6. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    Значит нельзя так сделать в масме, да? :)
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    rmn
    Нельзя, т.к. точное значение $, ровно как и любой другой метки, на этапе компиляции установить нельзя. Зато можно печатать относительные значения. Пример:
    Код (Text):
    1. start:
    2.    ; тут куча кода
    3. counter textequ %($-start)
    4. % ECHO counter
     
  8. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.351
    Вроде работает, но только странно как-то.

    Инструкция, перед которой ставлю выражение после компиляции находится по вирт. адресу 45D1D9, start - 401000. На консоль выводится 856.
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Может, start и вторая метка находятся в разных секциях? На простом примере этот метод работает.