Resultados de la búsqueda a petición "calling-convention"

1 la respuesta

Llamar a printf en ASM en línea extendido

Estoy tratando de generar la misma cadena dos veces en ASM en línea extendido enCCG, en Linux de 64 bits. int main() { const char* test = "test\n"; asm( "movq %[test], %%rdi\n" // Debugger shows rdi = *address of string* "movq $0, %%rax\n" "push ...

1 la respuesta

¿Se permite la basura en bits altos de parámetros y registros de valor de retorno en x86-64 SysV ABI?

El x86-64 SysV ABI especifica, entre otras cosas, cómo se pasan los parámetros de función en los registros (primer argumento enrdi, luegorsi y así sucesivamente), y cómo se devuelven los valores de retorno enteros (enrax y entoncesrdx para ...

2 la respuesta

El valor de ESP no se guardó correctamente

En la imagen de arriba puede ver que se produce un error cuando la función setAttribute [http://xerces.apache.org/xerces-c/apiDocs-3/classDOMElement.html#1a607d8c619c4aa4a59bc1a7bc5d4692] vuelve de su llamada. ¿Alguien sabe cómo resolver este ...

2 la respuesta

¿Cada instrucción PUSH empuja un múltiplo de 8 bytes en x64?

En x64, ¿cada instrucción PUSH empuja un múltiplo de 8 bytes? Si no, ¿cuánto empuja? Además, ¿cuánto espacio de pila consume cada parámetro de función?

1 la respuesta

¿Devolver una tupla de 2 tuplas es menos eficiente que std :: pair?

Considera este código: #include <utility> #include <tuple> std::pair<int, int> f1() { return std::make_pair(0x111, 0x222); } std::tuple<int, int> f2() { return std::make_tuple(0x111, 0x222); }Clang 3 y 4 generan código similar para ambos ...

2 la respuesta

¿Por qué se requiere "mov rcx, rax" al llamar a printf en el ensamblador x64?

Estoy tratando de aprender el ensamblador x64. Escribí "hola mundo" e intenté llamar a printf usando el siguiente código: EXTERN printf: PROC PUBLIC hello_world_asm .data hello_msg db "Hello world", 0 .code hello_world_asm PROC push rbp ; save ...

6 la respuesta

Orden de evaluación de argumentos en la función de llamada?

Estoy estudiando sobre el comportamiento indefinido en C y llegué a una declaración que dice que no hay un orden particular de evaluación de argumentos de función pero ¿qué pasa con las convenciones de llamadas estándar como_cdecl ...

1 la respuesta

Pregunta sobre la convención de llamada del objetivo C y la transmisión de argumentos en ARM

Quiero saber cómo el tiempo de ejecución objetivo C maneja los argumentos cuando llamo a un método C objetivo como [NSString stringWithFomat:@"%@, %@", @"Hello", @"World"]Hay tres argumentos para esta llamada C objetiva, cómo funciona en ...

2 la respuesta

¿Cómo se cambia el puntero de la pila en este programa con call y ret?

Mis preguntas se refieren a las acciones que parecen suceder entre líneas cuando se cambia el contexto, especialmente en relación conRSP yRBP. Dado este programa muy simple: Reading symbols from ./function_call...done. (gdb) disass main Dump of ...

2 la respuesta

¿Cómo funciona el encadenamiento de métodos?

CómogetRequestDispatcher("xxx") ser llamado desdegetServletContext() en el ejemplo de abajo? ¿Cómo funcionan los procedimientos de llamada como este en general? Por favor, dame una idea clara sobre este contexto. RequestDispatcher dispatcher ...