Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка на Асме в Builder, Как это сделать?!! 
:(
    Опции темы
VVV
Дата 17.7.2006, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите! Как сделать вставку на ассемблере в си++шный код в Buildere? 
PM MAIL   Вверх
dumb
Дата 18.7.2006, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


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

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



F1:
Цитата

Category
C++Builder keyword extensions, C++-Specific Keywords

Syntax
asm <opcode> <operands> <; or newline>
_asm <opcode> <operands> <; or newline>
__asm <opcode> <operands> <; or newline>


Код

_asm mov eax, ebx

_asm {
  mov eax, ebx
  mov ebx, eax
}


smile 
PM MAIL   Вверх
apook
Дата 24.7.2006, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что то asm вообще не вставляется  smile

user posted image

user posted image

  

Это сообщение отредактировал(а) apook - 24.7.2006, 13:14


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
dumb
Дата 24.7.2006, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


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

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



apook, тебе уже по-моему не один раз говорили, что есть "небольшая" разница в режимах работы процессора. ЗАБУДЬ про прерывания. по крайней мере пока не поймешь, как они работают в защищенном режиме в целом и в винде в частности.

Добавлено @ 13:34 
даже так: забудь про асм... тебе нужно "основательно подучить теорию", как обычно говорят преподаватели... smile 
PM MAIL   Вверх
apook
Дата 24.7.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 user posted image
 

Это сообщение отредактировал(а) apook - 25.7.2006, 13:56


--------------------
Мои руки из дуба, голова из свинца ну и пусть ...
PM MAIL   Вверх
Gordon
Дата 28.7.2006, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



apook ассемблеровские вставки делаются так:
asm {
// код ассемблера
}

Можешь поискать вздесь: http://worldcpp.vingrad.ru/ smile

Добавлено @ 12:25 
 smile Прошу прощения, ошибся :
Цитата

Можешь поискать вздесь: http://worldcpp.vingrad.ru/
 


--------------------

  
     
PM MAIL WWW   Вверх
fish9370
Дата 12.6.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

__asm
{
        call $+5
        pop    ebx
}


на команде call возникает ошибка E2188 Expression Syntax, другими словами TASM не понимает, что такое $.. кто-нибудь знает как правильно записать? 

p.s.  мне требуется получить текущий адрес в ebx..


--------------------
undefined
PM MAIL WWW ICQ   Вверх
586
Дата 13.6.2007, 05:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



Код
  __asm {
    db 0e8h, 0, 0, 0, 0
    pop ebx
  }

PM   Вверх
jonie
Дата 13.6.2007, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



а вариант 
Код

 point: call point+5

работать не будет? smile 


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
586
Дата 13.6.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



Цитата(jonie @  13.6.2007,  10:39 Найти цитируемый пост)
а вариант 
 
Код
point: call point+5

работать не будет?

а смысл? создавать лишнюю метку? всё равно смещение цифрами указывается, где 5 - это размер команды call.

PS  А у меня билдер ругается: Undefined symbol 'point'. По идее код реальный.
PM   Вверх
jonie
Дата 13.6.2007, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Цитата

а смысл?
просто виды db блаблабла  в коде пугают до ужаса)
Цитата

№120091
<Amin_[work]> коммент из исходника : "Эту функцию писал не я, как она работает - без понятия. Трогать страшно." Далее идет 5 страниц ассемблера без единого разделителя и каммента.
(с) copyright bash.org.ru 


мдя... после нескольких экпериментов получил
Цитата

[C++ Fatal Error] Unit1.cpp(22): F1001 Internal code generator error
забил)....

PS: получить ассемблеровский листинг (поствив что надо в опциях) так и не получилось....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
586
Дата 13.6.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

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



Цитата(jonie @  13.6.2007,  16:39 Найти цитируемый пост)
просто виды db блаблабла  в коде пугают до ужаса

Без комментариев может и испугать.
Можно ещё так, а то вдруг кого-нибудь размер команды испугает:
Код
__asm {
     call loc
loc: pop ebx
}

PM   Вверх
jonie
Дата 14.6.2007, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



Цитата

Можно ещё так, а то вдруг кого-нибудь размер команды испугает:
а еще есть всякие x64 и прочие... я бы не рекомендовал писать прямо опкодами -- они жестко привязывают программа к аппратуре... кроме того такой код сложно поддерживать....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
dumb
Дата 14.6.2007, 12:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


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

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



Цитата(jonie @  14.6.2007,  00:03 Найти цитируемый пост)
я бы не рекомендовал писать прямо опкодами -- они жестко привязывают программа к аппратуре...

уже само использование ассемблера "жестко привязывает"... smile
PM MAIL   Вверх
fish9370
Дата 18.6.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



так все-таки почему компилятор ругается на метки? че ему надо?


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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