Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Inline Asm в VB IDE, Inline Asm в VB IDE 
:(
    Опции темы
Gannibal
Дата 20.1.2005, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



вот вопрос на засыпку а может быть и нет. как в ВБ реализоват инлайн функции Ассемблера при запуске програмы но без компиляции ... когда он скомпилирован.. програма работает.. а как зделать так чтобы она работала тй инлайн Асм работал.. при нажатии кнопки ф5


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
cardinal
Дата 21.1.2005, 03:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Поточнее плиз...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Gannibal
Дата 21.1.2005, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



ну вот смотри, у меня в ВБ ИДЕ открыт исходник програмы в которой я употрябил инлайнАСМ (т.е. функции из Ассемблера) когда я програму перевожу в ЕХЕ файл всё работает нормально, но когда я пробую запустить програму в ВБ ИДЕ с помощью кнопки ф5, Асм код ннекомпелируется а вот почему? когда прогу перевожу в ЕХЕ файл там уже хоокнута АПИ КреатеПроццес, вот когда ВБ ИДЕ запускает линк.ехе так вызывает эту функцию АПИ и в этом моменте весь код АСМа вставляется в ехе файла но когда запускается ВБ ИДЕ ничего такого непроисходит и поэтому когда ты хочешь тестировать прогу тебе её всё время надо компилировать


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Unknown_Error
Дата 21.1.2005, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Хм...
Странно, но из предыдущего топика понял, что автор каким то образом умудрился вставить асм код в вижуал басике? smile
PM MAIL ICQ   Вверх
Gannibal
Дата 21.1.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



да именно АСМ в ВБ ты правельно понял и С тоже ;)


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
cardinal
Дата 22.1.2005, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(M @ 21.1.2005, 15:40)
да именно АСМ в ВБ ты правельно понял и С тоже

код в студию smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
__Sergey__
Дата 22.1.2005, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 21.1.2005

Репутация: 4
Всего: 4



Вот типа KTimer
Код

Option Explicit

'ДЛЯ ПРОЦЕССОРОВ INTEL

'---------- Пример использования -----------
'    Dim cycles As Long, cpusp As Long
 
'    cpusp = timer.CpuSpeed
   
'    timer.StartTime

'   ... здесь проверяемый код ...
   
'    к-во тактов = timer.StopTime
   
'    к-во микросекунд = timer.mks(к-во тактов, cpusp)

'возвращает к-во тактов с момента запуска процессора.
Private Declare Function ReadTime Lib "user32" Alias "CallWindowProcA" (ByVal ptrMC As Long, ByVal P1 As Long, ByVal P2 As Long, ByVal P3 As Long, ByVal P4 As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private BinCode(2) As Byte
Private BinCode1(25) As Byte
Private ptrMC As Long
Private ptrMC1 As Long
Private m_overhead As Long
Private m_startcycle As Long

Private Sub Class_Initialize()
BinCode(0) = &HF
BinCode(1) = &H31
BinCode(2) = &HC3
ptrMC = VarPtr(BinCode(0))
'учтем время, потраченное на выполнение ф-ции ReadTime
 StartTime
 m_overhead = StopTime
End Sub


Sub StartTime()
 m_startcycle = ReadTime(ptrMC, 0, 0, 0, 0)
End Sub


Function StopTime() As Long
 StopTime = ReadTime(ptrMC, 0, 0, 0, 0) - m_startcycle - m_overhead
End Function


Function CpuSpeed() As Long
 m_startcycle = ReadTime(ptrMC, 0, 0, 0, 0)
 Sleep (1000)
 On Error Resume Next
 CpuSpeed = (ReadTime(ptrMC, 0, 0, 0, 0) - m_startcycle - m_overhead) / 100000
End Function

Function mks(ByVal cycles As Long, ByVal CpuSpeed As Long) As Long
 If CpuSpeed = 0 Then Exit Function
 On Error Resume Next
 'возвращает к-во микросекунд
 mks = cycles * 10000 / CpuSpeed / 1000
End Function

Function ns(ByVal cycles As Long, ByVal CpuSpeed As Long) As Long
 If CpuSpeed = 0 Then Exit Function
 On Error Resume Next
 'возвращает к-во наносекунд
 ns = cycles * 10000 / CpuSpeed
End Function

PM MAIL   Вверх
cardinal
Дата 22.1.2005, 02:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ну это не совсем
Цитата(M @ 21.1.2005, 14:50)
инлайнАСМ




--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
__Sergey__
Дата 22.1.2005, 05:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 21.1.2005

Репутация: 4
Всего: 4



[quote]Ну это не совсем
А что есть - совсем?
PM MAIL   Вверх
Unknown_Error
Дата 23.1.2005, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 54
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Цитата(__Sergey__ @ 22.1.2005, 05:05)
А что есть - совсем?


Код

asm {
  mov ax, 12
}


Это сообщение отредактировал(а) Unknown_Error - 23.1.2005, 12:42
PM MAIL ICQ   Вверх
cardinal
Дата 23.1.2005, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Unknown_Error, да, именно что-то такое... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Gannibal
Дата 23.1.2005, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



а мне кто поможет?


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
cardinal
Дата 23.1.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



я же тебе сказал
Цитата(cardinal @ 21.1.2005, 22:45)
код в студию

smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Gannibal
Дата 23.1.2005, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



извини незаметил smile вот код надо компилить и всё ок будет... сам поймёшь это вся та прога ТхундерВБ как я о ней говорил

http://servak.wz.cz/tvb.zip

function A() as long
asm INT 3
end function

например такой код вот что асм возвращает ИНТ3 в машинном коде CD03 это понятно, а вот как этот код CD03 получить в теле самой функции


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
__Sergey__
Дата 25.1.2005, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 21.1.2005

Репутация: 4
Всего: 4



В этом ТхундерВБ пишется, что компилировать и проверять надо отдельно.
Проверять на с - или асм - компиляторах.

Я так понимаю эти коды по F5 or F8 не идут, т.к. вставляются в exe на этапе
компиляции, т.е. для VB их не существует.
Непонятно, эти асм- и с-коды, при компиляции, вставляются наподобие _inline в с++.

function A() as long
asm INT 3
end function

Допустим в этом коде генерится ли пролог, эпилог или ф-ция А() используется как
метка для асм-кода smile
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0524 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.