Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 13:38
Ведь так же можно?
Можно, но где гарантия того, что состояние флагов и регистров не измениться после ее завершения? Если ты заглянешь в отладчик, то увидишь, что Винда меняет значения многих регистров после выполнения любой АПИ-функции.
А я все практикую лечение травами...
-
Dex
-
- Постоялец

-
-
- Сообщения: 346
- Зарегистрирован: 09.08.2004 (Пн) 16:11
Dex » 10.03.2006 (Пт) 14:19
Ну тогда вариант tyomitch'а. (и всё равно мой метод заслуживает внимания, хотя он и не полноценен

)
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 14:22
и всё равно мой метод заслуживает внимания, хотя он и не полноценен
Любой метод заслуживает внимания и критики,
особенно если он не полноценен...
А я все практикую лечение травами...
-
keks-n
-
- Доктор VB наук

-

-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 10.03.2006 (Пт) 14:46
Twister
Меняем значение EAX средствами VB

:
- Код: Выделить всё
sub Main
ChangeEAX 15
end sub
Function ChangeEAX(NewValue as long) as Long
'Т. к. возвращяемое значение передаётся через EAX, то...
ChangeEAX=NewValue
end function
Также регистры при выполнении апишки меняет не винда а сама функция, т. к. она их использует.
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 14:51
ECX, EDX и ESP на закуску слабо?...
А я все практикую лечение травами...
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 14:56
Также регистры при выполнении апишки меняет не винда а сама функция, т. к. она их использует.
Имхо к словам предираться не стоит - все поняли о чем я говорил. Впринципе, тоже касается и вопроса о ЕАХ.
А я все практикую лечение травами...
-
keks-n
-
- Доктор VB наук

-

-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 10.03.2006 (Пт) 14:58
Убедил.
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 15:00
keks-n писал(а):Издеваешся?
Если поправить ESP, то слетит указатель на стек

Конечно, если учесть что в ESP он и храниться...
PS Пора закрывать тему, пошел флуд.
А я все практикую лечение травами...
-
keks-n
-
- Доктор VB наук

-

-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 10.03.2006 (Пт) 15:04
Перечитал тему. Неужели никто не вспомнил про LASM, лежащий на
www.vbstreets.ru ?
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 15:08
Я вспомнил. Но собственно, подобный вариант рассматривался здесь и так...
А я все практикую лечение травами...
-
keks-n
-
- Доктор VB наук

-

-
- Сообщения: 2509
- Зарегистрирован: 19.09.2005 (Пн) 17:17
- Откуда: г. Москва
-
keks-n » 10.03.2006 (Пт) 15:10
Дык это... Там вроде как и компилятор спецательный, и модуль генерится автоматом.
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 15:17
Да. Там такое есть.
А я все практикую лечение травами...
-
Twister
-
- Теоретик

-

-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 10.03.2006 (Пт) 16:32
Судя вот по этому, эта фишка не позволяет обращаться к VB-переменным программы...
- Код: Выделить всё
Public Sub asmSinCosPointer(ByRef sngCosAngle As Single, ByRef sngSinAngle As Single)
'#ASM_START
'.MMX
' push ebp
' mov ebp, esp
' mov eax, DWORD PTR [ebp+8] ;'//First argument, store in eax (= value now!)
' fld dword ptr [eax] ;'//Get value for cos
' fsincos ;'//Execute sin/cos instruction
' fstp dword ptr [eax] ;'//Store cos in eax (1st param pointer!)
' mov eax, DWORD PTR [ebp+12] ;'//Second argument, store in eax (=value now!)
' fstp dword ptr [eax] ;'//Store sin in eax (2nd param pointer!)
' mov esp, ebp ;'//MOV/POP is much faster
' pop ebp ;'//on 486 and Pentium than Leave
' ret 8
'#ASM_END
End Sub
А я все практикую лечение травами...
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 13