Цитата(vet @ Apr 13 2006, 16:32)

Для IAR - модификатором __z_x перед объявлением функции, если не ошибаюсь. Для C++ методов - __x_z, так как первым аргументом неявно идёт this.
Где-то так (не проверял).
Код
__z_x void а(сhar* p)
{ //p передаётся в R31:R30
}
На самом деле достаточно __z. Но это недокументированные фичи, для внутреннего, так сказать, употребления.
Цитата(IEC @ Apr 13 2006, 16:40)

Как я понимаю this идет для объекта класса.
Задача: забить значение ссылки в регистр Z, или значение инициализированной переменной в регистр, обработка даннного значения в вставке ( __asm() ) и восстановление.
Просто нехочется для написания ассемблерного кода (оптимизация куска программы) писать функцию.
Т.Е. вопрос чисто реторический. Если есть возможность - хотелось бы ее использовать.
А-а, т.е. хотите сделать обработку на асме и хотите забиндить объекты на регистры? Ну, тут хорошего, имхо, не выйдет - IAR'овский инлайновый ассемблер очень примитивный, он не поддерживает, как, например, GCC возможность указать, в какие регистры что засунуть. Кроме того, эффективность кодогенерации компилятором при использовании асмовой вставки может упасть. Поэтому рекомедованный способ, если надо что-то на низком уровне обработать - вынести в отдельную асмовую функцию и ее вызывать.
«Отыщи всему начало, и ты многое поймёшь» К. Прутков