Usando símbolos de C ou C++ em blocos __asm
Seção específica da Microsoft
Um bloco __asm
pode se referir a qualquer símbolo C ou C++ no escopo em que o bloco é exibido. (Símbolos C e C++ são nomes de variáveis, nomes de função e rótulos; ou seja, nomes que não são constantes simbólicas ou membros enum
. Você não pode chamar funções membro do C++.)
Algumas restrições se aplicam ao uso de símbolos C e C++:
Cada instrução de linguagem de assembly pode conter apenas um símbolo C ou C++. Vários símbolos podem aparecer na mesma instrução de assembly somente com expressões LENGTH, TYPE e SIZE.
As funções referenciadas em um bloco
__asm
precisam ser declaradas (prototipadas) anteriormente no programa. Caso contrário, o compilador não poderá distinguir entre nomes de função e rótulos no bloco__asm
.Um bloco
__asm
não pode usar nenhum símbolo C ou C++ com a mesma ortografia que palavras reservadas do MASM (independentemente do caso). As palavras reservadas do MASM incluem nomes de instrução como PUSH e nomes de registro, como SI.Marcas de estrutura e união não são reconhecidas em blocos
__asm
.
Fim da seção específica da Microsoft