Форум программистов, компьютерный форум CyberForum.ru

Передача значения в asm вставку - C++

Восстановить пароль Регистрация
 
oll
1 / 1 / 0
Регистрация: 26.04.2012
Сообщений: 56
08.11.2013, 16:24     Передача значения в asm вставку #1
Есть код:
C++
1
2
3
4
5
6
int d = 7;
    _asm 
    {
      PUSH 1
      PUSH d
    }
Как передать значение переменной d в asm вставку, именно цифру 7(как 1), а не int
Какой тип использовать для этого?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2013, 16:24     Передача значения в asm вставку
Посмотрите здесь:

C++ передача значения и передача переменной
Передача значения по ссылке C++
Передача значения массива в основную функцию C++
C++ Передача значения по ссылке
Передача значения переменной по ссылке C++
пишу программу на С++, и делаю в ней ассемблеровскую вставку. Возможно ли в этой _asm вставке сделать С++ вставку? C++
C++ Неверная передача значения
Передача нескольких пременных в asm C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TSed
19 / 19 / 1
Регистрация: 22.01.2013
Сообщений: 76
08.11.2013, 16:57     Передача значения в asm вставку #2
Запишите переменную в регистр, например EAX
C++
1
2
3
_asm{
    MOV EAX, d
}
далее пользуйтесь значением уже в регистре
ssXXss
263 / 185 / 10
Регистрация: 15.01.2011
Сообщений: 668
08.11.2013, 17:21     Передача значения в asm вставку #3
ну так ты и положил в стек значение d = 7, команде push все равно что запихивать в стек, важен размер операнда - 1, 2, 4 , х64 - 8 байт
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// x86
   int x = 22222,x2 = 0;
    __int64 x64 = 0xffffffffffffffff, x2x64 = 0;
    char c[] = "33333333",c2 = 0x00;
    _asm
    {
        push x
        push x64// компилятор может ругатся размер операнда 8 байт
        push c
        pop c2   // c2 = 3
        pop x2x64 // x2x64 = 0x00000000ffffffff
        pop x2     // x2 = 22222
    }
можно передавать адреса переменных и дальше работать с их содержанием , синтаксис асм вставок зависит от конкретного компилятора.
Yandex
Объявления
08.11.2013, 17:21     Передача значения в asm вставку
Ответ Создать тему
Опции темы

Текущее время: 09:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru