Preguntas etiquetadas con assembly

Preguntas de programación en lenguaje ensamblador (asm). ASEGÚRESE DE TAMBIÉN TAG con el procesador y / o conjunto de instrucciones que está utilizando, así como el ensamblador. ADVERTENCIA: Para los ensamblados .NET, use la etiqueta [.net-assembly] en su lugar. Para Java ASM, use la etiqueta [java-bytecode-asm] en su lugar.




4
¿Por qué la introducción de instrucciones MOV inútiles aceleraría un ciclo cerrado en el ensamblaje x86_64?
Antecedentes: Al optimizar un código Pascal con lenguaje ensamblador incorporado, noté una MOVinstrucción innecesaria y la eliminé. Para mi sorpresa, eliminar las instrucciones innecesarias hizo que mi programa se ralentizara . Descubrí que agregar MOVinstrucciones arbitrarias e inútiles aumentaba aún más el rendimiento . El efecto es errático y los …

30
¿Por qué no se escriben los programas en la Asamblea con más frecuencia? [cerrado]
Tal como está actualmente, esta pregunta no es adecuada para nuestro formato de preguntas y respuestas. Esperamos que las respuestas sean respaldadas por hechos, referencias o experiencia, pero esta pregunta probablemente solicitará debate, argumentos, encuestas o discusión extendida. Si cree que esta pregunta puede mejorarse y posiblemente reabrirse, visite el …

24
¿Proteger el ejecutable de la ingeniería inversa?
He estado contemplando cómo proteger mi código C / C ++ del desmontaje y la ingeniería inversa. Normalmente nunca aprobaría este comportamiento en mi código; sin embargo, el protocolo actual en el que he estado trabajando nunca debe ser inspeccionado o comprensible, para la seguridad de varias personas. Ahora, este …
210 c++  c  obfuscation  assembly 

3
¿Por qué GCC genera un ensamblaje tan radicalmente diferente para casi el mismo código C?
Mientras escribía una ftolfunción optimizada , encontré un comportamiento muy extraño en GCC 4.6.1. Déjame mostrarte el código primero (para mayor claridad, marqué las diferencias): fast_trunc_one, C: int fast_trunc_one(int i) { int mantissa, exponent, sign, r; mantissa = (i & 0x07fffff) | 0x800000; exponent = 150 - ((i >> 23) …


7
Mostrar instrucciones de montaje actuales en GDB
Estoy haciendo una depuración a nivel de ensamblado en GDB. ¿Hay alguna manera de hacer que GDB me muestre la instrucción de ensamblaje actual de la misma manera que muestra la línea de origen actual? El resultado predeterminado después de cada comando tiene este aspecto: 0x0001433f 990 Foo::bar(p); Esto me …
179 assembly  gdb 

13
¿Puede num ++ ser atómico para 'int num'?
En general, for int num, num++(or ++num), como una operación de lectura-modificación-escritura, no es atómica . Pero a menudo veo que los compiladores, por ejemplo GCC , generan el siguiente código ( intente aquí ): Dado que la línea 5, que corresponde a num++una instrucción, ¿podemos concluir que num++ es …


13
¿Cómo se programan las máquinas cotidianas?
¿Cómo se programan las máquinas cotidianas (no tanto computadoras y dispositivos móviles como electrodomésticos, relojes digitales, etc.)? ¿Qué tipo de código entra en la programación de una máquina expendedora de Coca-Cola? ¿Cómo acepta mi cafetera una hora preprogramada y comienza a preparar una cafetera horas más tarde, cuando llega esa …




Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.