Ensambladores en la actualidad Flashcards

1
Q

¿Cuál es la línea del tiempo de Macro Assembler?

A
  1. Introducido por Microsoft en 1981
  2. De 1981 a 19990 fue conocido como MASM.EXE
  3. En 1991 cambia de nombre a ML.EXE
  4. En el 2000 se compatibiliza con Microsoft Visual C++
  5. En 2005 comienza el soporte x64
  6. En 2017 sale a la luz la versión actual.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Los procesadores Intel 8086-80286 permitían…

A

crear programamas con datos de 8 y 16 bits (Turbo Assembler)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

El procesador Intel 80386 fue…

A

El primer procesador en permitir programas con datos de hasta 32 bit con set de instrucciones x86 (Macro Assembler)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

A partir de Windows NT las palabras…

A

Convirtieron su tamaño oficial a 32bits y se comienza con el set de instrucciones x64

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Cómo son los registros en Macro Assembler?

A
  1. de 32 bits como EAX
  2. De 16 bits como AX
  3. De 8 bits como AH y AL
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué es EAX?

A

Es un acumulador para operandos y resultados

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué es EBX?

A

Es un apuntador para datos del segmentos de datos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué es ECX?

A

Contador para los ciclos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es EDX?

A

Apuntador para entradas/salidas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es EBP?

A

Frame pointer, utilizado para operaciones con la pila

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es ESP?

A

Stack pointer, utilizando para operaciones PUSH y POP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué es ESI?

A

Source Index, utilizando para algunas operaciones con arreglos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es EDI?

A

Data Index, requerido para algunas operaciones con arreglos

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es EIP?

A

Instruction pointer, guarda la direcciones de la siguiente instrucción a ejecutar.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué son las EFLAGS?

A

Resultados de banderas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cuáles EFLAGS existen?

A

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)

17
Q

¿Qué significa S, C y X en las EFLAGS?

A

S = Indica que es una bandera de estado
C = Indica que es una bandera de control
X = Indica que es una bandera de sistema.

18
Q

¿Cuáles son los modelos de Macro Assembler?

A

Tiny, Small, Compact, Medium, Large, Huge Flat

19
Q

¿Cómo es el modelo Tiny?

A

Datos y código en el mismo segmentos, 64k bytes en total

20
Q

¿Cómo es el modelo Small?

A

Datos y código en segmentos independientes 64k bytes c/u

21
Q

¿Cómo es el modelo compact?

A

Datos crean nuevos segmento al llenarse, código en un único segmento 64k bytes c/u

22
Q

¿Cómo es el modelo medium?

A

Datos en un segmento único, código crea nuevos segmentos al llenarse 64k bytes c/u

23
Q

¿Cómo es un modelo Large?

A

Datos y código crean nuevos segmentos al llenarse 64k bytes c/u

24
Q

¿Cómo es un modelo Huge?

A

Es igual al Large, pero permite el manejo de datos mayores a un segmento, esto lo define el programador 64kbytes c/u

25
¿Cómo es el modelo Flat?
Datos y código en el mismo segmento, el segmento es de 32 bits
26
¿cuál es la estructura que debe serguir el modelo?
.MODEL "memory_model", "language_type", "stack_option"
27
¿Cuáles son las opciones para memory model en 32 bits y en 16 bits?
En 32: Flat En 16: Tiny, Small, Compact, Medium, Large, Huge y Flat
28
¿Cuáles son las opciones para el language_type en 32 y 16 bits?
En 32: C, STDCALL En 16: C, BASIC, FOTRAN, PASCAL, SYSCALL, STDCALL
29
¿Cuáles son las opciones para stack_option en 32 y 16 bits?
En 32: No se usa En 16: Nearstack, Farstack
30
Considerasiones
1. Debe definirse el procesador con el que se trabajará 2. Por defecto el sistema numérico es hexadecimal, pero se puede modificar. 3. La pila por defecto es de 1024 bytes, pero se puede modificar 4. Segmento de datos (.DATA) y datos no inicializados (.DATA?)