Ensambladores en la actualidad Flashcards
¿Cuál es la línea del tiempo de Macro Assembler?
- Introducido por Microsoft en 1981
- De 1981 a 19990 fue conocido como MASM.EXE
- En 1991 cambia de nombre a ML.EXE
- En el 2000 se compatibiliza con Microsoft Visual C++
- En 2005 comienza el soporte x64
- En 2017 sale a la luz la versión actual.
Los procesadores Intel 8086-80286 permitían…
crear programamas con datos de 8 y 16 bits (Turbo Assembler)
El procesador Intel 80386 fue…
El primer procesador en permitir programas con datos de hasta 32 bit con set de instrucciones x86 (Macro Assembler)
A partir de Windows NT las palabras…
Convirtieron su tamaño oficial a 32bits y se comienza con el set de instrucciones x64
¿Cómo son los registros en Macro Assembler?
- de 32 bits como EAX
- De 16 bits como AX
- De 8 bits como AH y AL
¿Qué es EAX?
Es un acumulador para operandos y resultados
¿Qué es EBX?
Es un apuntador para datos del segmentos de datos
¿Qué es ECX?
Contador para los ciclos
¿Qué es EDX?
Apuntador para entradas/salidas
¿Qué es EBP?
Frame pointer, utilizado para operaciones con la pila
¿Qué es ESP?
Stack pointer, utilizando para operaciones PUSH y POP
¿Qué es ESI?
Source Index, utilizando para algunas operaciones con arreglos
¿Qué es EDI?
Data Index, requerido para algunas operaciones con arreglos
¿Qué es EIP?
Instruction pointer, guarda la direcciones de la siguiente instrucción a ejecutar.
¿Qué son las EFLAGS?
Resultados de banderas
¿Cuáles EFLAGS existen?
X ID FLAG (ID)
X Virtual interrupt Pending (VIP)
X Virtual interrumpt flag
X Alignmente Check (AC)
X Virtual-8086 Mode (VM)
X Resume Flag (RF)
X Nested task (NT)
X I/O Privilege Level (IOPL)
S Overflow Flag (OF)
C Direction flag (DF)
X Interrupt Enable Flag (IF)
X Trap Flag (TF)
S Sign Flag (SF)
S Zero Flag (ZF)
S Auxiliarity Carry Flag (AF)
S Parity Flag (PF)
S Carry Flag (CF)
¿Qué significa S, C y X en las EFLAGS?
S = Indica que es una bandera de estado
C = Indica que es una bandera de control
X = Indica que es una bandera de sistema.
¿Cuáles son los modelos de Macro Assembler?
Tiny, Small, Compact, Medium, Large, Huge Flat
¿Cómo es el modelo Tiny?
Datos y código en el mismo segmentos, 64k bytes en total
¿Cómo es el modelo Small?
Datos y código en segmentos independientes 64k bytes c/u
¿Cómo es el modelo compact?
Datos crean nuevos segmento al llenarse, código en un único segmento 64k bytes c/u
¿Cómo es el modelo medium?
Datos en un segmento único, código crea nuevos segmentos al llenarse 64k bytes c/u
¿Cómo es un modelo Large?
Datos y código crean nuevos segmentos al llenarse 64k bytes c/u
¿Cómo es un modelo Huge?
Es igual al Large, pero permite el manejo de datos mayores a un segmento, esto lo define el programador 64kbytes c/u