Member 14004556 Ответов: 2

На C++ в Visual студии встроенный ассемблер как я нажимаю вместо значения его адрес


Я пытаюсь протолкнуть адрес с помощью встроенного asm в Visual Studio 2013,

mov [asd], 0x80
толчок АСД

вместо того чтобы нажимать адрес, он нажимает значение asd

Я понятия не имею как это преодолеть любая помощь будет оценена по достоинству

Что я уже пробовал:

asd-это адрес, но когда я иду в область памяти с помощью шестнадцатеричного средства просмотра, push asd превращается в push [asd]

Я понятия не имею, что делать дальше

2 Ответов

Рейтинг:
7

Jochen Arndt

Это зависит от используемого ассемблера. С синтаксисом MASM, который используется Visual C/C++, вы должны использовать OFFSET ключевое слово:

push OFFSET asd


Рейтинг:
17

OriginalGriff

Это будет зависеть от компилятора, но для GCC это:

push $asd

Смотри сюда, это может помочь: Использование встроенной сборки в C/C++[^]


Member 14004556

Я использую visual c++

OriginalGriff

Смотрите здесь: https://msdn.microsoft.com/en-us/library/y8b57x4b.aspx

OriginalGriff

Значит, вы не потрудились прочитать ссылку и посмотреть код, который делает это внизу?

Member 14004556

Я только что закончил читать его, Спасибо тебе

OriginalGriff

Всегда пожалуйста!