visual studio microsoft español descargar community assembly x86

assembly - microsoft - visual studio installer



¿LEA es la única instrucción en x86 con un operando de memoria que no accede a la memoria? (2)

La familia de instrucciones de captación previa (prefetcht1, prefetcht2, prefetcht3, prefetchnta) solicita al procesador que vaya y extraiga esas líneas de memoria en caché, ya que se necesitarán pronto. Pero, la documentación de Intel deja en claro que no se pueden producir fallas debido a una mala dirección que se pasa a la captación previa. Esto es para que el software pueda pasar direcciones potencialmente fuera de límite para captación previa sin verificarlas primero, de modo que los datos puedan estar en vuelo mientras se realizan dichos controles.

Las capturas previas tampoco tienen un ''resultado'', a diferencia de LEA .

Estoy usando libdis , la biblioteca de desmontaje x86 del bastardo , y estoy tratando de averiguar qué instrucciones acceden a la memoria.

Con referencia a estas dos instrucciones:

mov eax, [ebx + 10] lea eax, [ebx + 10]

En libdis , ambos se enumeran con el tipo de instrucción insn_mov , y los operandos de dirección tienen los mismos indicadores en ambos casos. Entonces, la única forma en que puedo saber si se accede a la memoria es mirar la instrucción mnemotécnica.

De ahí mi pregunta: ¿LEA es la única instrucción que usa un operando de memoria que no tiene acceso a la memoria? Cualquier enlace a referencias sería agradable.


Intel tiene un conjunto de instrucciones "NOP" que toman los operandos de direccionamiento de memoria.

No creo que toquen la memoria; de hecho, no estoy seguro de si realmente forman una dirección y la ejecutan a través de un mapa de memoria y verifican las protecciones. No lo creo; Creé un compilador que genera una amplia gama de estos con varios modos de direccionamiento como NOP llenos de espacio de diferentes tamaños, y nunca se atrapa.