Share via


Expresiones masm frente a expresiones de C++

Las diferencias más significativas entre la evaluación de expresiones MASM y la evaluación de expresiones de C++ son las siguientes:

  • En una expresión MASM, el valor numérico de cualquier símbolo es su dirección de memoria. En una expresión de C++, el valor numérico de una variable es su valor real, no su dirección. Las estructuras de datos no tienen valores numéricos. En su lugar, se tratan como estructuras reales y debe usarlas en consecuencia. El valor de un nombre de función o cualquier otro punto de entrada es la dirección de memoria y se trata como un puntero de función. Si usa un símbolo que no corresponde a un tipo de datos de C++ (por ejemplo, un nombre de módulo sin modificar), se produce un error de sintaxis.

  • El evaluador de expresiones masm trata todos los números como valores ULONG64. El evaluador de expresiones de C++ convierte números en ULONG64 y conserva la información de tipo de todos los tipos de datos.

  • El evaluador de expresiones MASM permite usar cualquier operador junto con cualquier número. El evaluador de expresiones de C++ genera un error si usa un operador junto con un tipo de datos incorrecto.

  • En el evaluador de expresiones MASM, toda la aritmética se realiza literalmente. En el evaluador de expresiones de C++, la aritmética de puntero se escala correctamente y no se permite cuando no es adecuado.

  • Una expresión MASM puede usar dos caracteres de subrayado ( __ ) o dos dos puntos ( :: ) para indicar los miembros de una clase. El evaluador de expresiones de C++ solo usa la sintaxis de dos puntos. La salida del depurador siempre usa dos puntos.

  • En una expresión MASM, debe agregar un signo at (@) antes de todos excepto los registros más comunes. Si se omite en el signo, el nombre del registro podría interpretarse como un número hexadecimal o como un símbolo. En una expresión de C++, este prefijo es necesario para todos los registros.

  • Las expresiones MASM pueden contener referencias a líneas de origen. Estas referencias se indican mediante acentos graves ( ` ). No se puede hacer referencia a números de línea de origen en una expresión de C++.

Consulte también

Números y operadores de MASM

Números y operadores de C++

Ejemplos de expresiones mixtas

Extensión de firma