GSerg писал(а):Неправда, знаем
И описано (правда, в документации к QBasic)
И даже темы есть про это у нас тут (про то, как наступали на эти грабельки, а потом догадывались, в чём дело)
Если, к примеру, в скобки заключить объект, то знаешь что будет? Попробуй
alibek писал(а):А объяснение очень простое. Когда аргумент в скобках, то он считается вычисляемым выражением. А выражение всегда передается как ByVal.
alibek писал(а):Согласен, вычисляемое значение копируется во временную переменную и функция получает ByRef именно ее. Только чем это отличается от ByVal?
GSerg писал(а):Друзья, имейте совесть
Это, по большому счёту, не так уж и важно. С точки зрения процедуры это будет byref, с точки зрения вызывающего - byval, на самом деле - byref Чем отличается?
ByVal
mov eax, [ebp+0x8]
ByRef
mov eax, [ebp+0x8]
mov eax, [eax]
Только этим
Но неужели это предмет детального обсуждения на нашем форуме?
BP писал(а):>Народ, скажите, есть у кого нормальная (максимально полная) дока по OpCod'ам
OpCodes.hlp из MASM32 вполне нормальная. А что ты ищешь?
BP писал(а):66 - это 16-битный расширитель 32-битной операции.
B8/1/0/0/0 mov eax,1
66/B8/1/0 mov ax,1
Для получения любой 16-битной операции (регистр - это r16, а память - WORD PTR) нужно добавить &H66 перед 32-битной.
Скачай LASM IDE из раздела проектов. Он после компиляции покажет опкоды для каждой операции.
GSerg писал(а):Во! Супер! То, что давно искал
Со своей стороны поделюсь quick reference card'ом
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47