Tag: DISASSEMBLY
Tengo la siguiente función de C++ que simplemente suma los tres elementos del array de entrada dado. #include using namespace std; int square(array<int, 3=””> ar) { int res = 0; for(int idx = 0; idx < ar.size(); idx++){ res += ar[idx]; } return res; } Este código compilado con Clang . . . Read more
Cuando ensamblé el archivo “entry.S” anterior, entry.o: formato de archivo elf64-littleriscv Desensamblaje de la sección .text: 0000000000000000 : 0: 06450293 addi t0,a0,100 0000000000000004 : 4: 00028663 beqz t0,10 8: fff28293 addi t0,t0,-1 c: ff9ff06f j 4 0000000000000010 : 10: 00000313 li t1,0 Desensamblaje de la sección .riscv.attributes: 0000000000000000 <.riscv.attributes>: 0: . . . Read more
He estado intentando desmontar el código C en código de ensamblador de Intel en mi MacBook Pro m1, pero no he encontrado una forma de hacerlo (he intentado buscar cómo hacerlo usando gdb, lldb, objdump, pero hasta ahora sin éxito). Entonces mi pregunta es: ¿es posible y, en tal caso, . . . Read more
Almacené la función en la memoria, y quiero obtener el código de ensamblador de mi memoria. Primero hice: int Operation(int a) { __asm__( “.intel_syntax;” “mov %%eax, %1;” “add %%eax, 1;” “add %%eax, 1;” “mov %0, %%eax;” “.att_syntax;”: “=r”(a): “r”(a) :”eax” ); return a; } y escribí un código de función. . . . Read more
¿Es válido llamar a [edi+0x21] en el conjunto de instrucciones x86-64? Según el manual de Intel, FF/2 solo es válido para r/m64, pero un codificador/decodificador en línea que estoy probando genera 67 ff 57 21. ¿Es que la herramienta que estoy utilizando está equivocada o mi comprensión es incorrecta?