P1 Flashcards

1
Q

¿A cuántas instrucciones en código máquina corresponde cada instrucción en alto nivel?

A

1 o más

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

Uso del registro R0

A

Argumentos, Valor de retorno, Variable temporal

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

Uso de los registros R1-R3

A

Argumentos, Variables temporales

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

Uso de los registros R4-R11

A

Variables guardadas

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

Uso del registro R13

A

Stack Pointer (SP)

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

Uso del registro R14

A

Link Register (LR)

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

Uso del registro R15

A

Program Counter (PC)

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

Forma de escritura de bytes en Little Endian

A

Little Endian empieza a escribir desde los bytes menos significativos

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

Tipo de acceso de memoria de la siguiente instrucción LDR R0, [R1, R2]

A

Offset

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

Tipo de acceso de memoria de la siguiente instrucción LDR R0, [R1, R2]!

A

Pre-index

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

Tipo de acceso de memoria de la siguiente instrucción LDR R0, [R1], R2

A

Post-index

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

Registros cambiados al hacer la instrucción LDR R0, [R1, R2]

A

R0 y el PC

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

Registros cambiados al hacer la instrucción LDR R0, [R1, R2]!

A

R0, R1 y PC. En el modo pre-index, se modifica el registro R1 con el desplazamiento R2 antes de cargarlo en R0

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

Registros cambiados al hacer la instrucción LDR R0, [R1], R2

A

R0, R1 y PC. En el modo post-index, se carga primero el contenido de R1 en R0 y luego se le aplica un desplazamiento R2

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

Diferencia en el tratamiento de enteros y chars

A

Un entero ocupa 4 bytes o 32 bits, mientras que, un char ocupa un byte o 8 bits

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

Función de la siguiente línea MOV PC, LR

A

Movemos la dirección de memoria almacenada en el Link Register al Program Counter. Nos movemos a esa línea en el código

17
Q

Cómo es el ‘crecimiento’ de la memoria pila

A

Es de forma decremental, es decir, si empieza en la dirección 0x00011400, el siguiente dato estaría en 0x000113FC= 0x00011400-0x00000004

18
Q

La macro instrucción push {R8, R9, R4} qué instrucciones realiza

A
SUB SP, SP, #12
STR R4, [SP, #8]
STR R8, [SP, #4] 
STR R9, [SP]
19
Q

La macro instrucción pop {R8, R9, R4} qué instrucciones realiza

A

LDR R9, [SP] \nLDR R8, [SP, #-4] \nLDR R4, [SP, #-8] \nADD SP, SP, #12

20
Q

Qué significa el acrónimo EQ

A

Equal

21
Q

Qué significa el acrónimo NE

A

Not Equal

22
Q

Qué significa el acrónimo GE

A

Greater or Equal

23
Q

Qué significa el acrónimo GT

A

Greater Than

24
Q

Qué significa el acrónimo LE

A

Lesser Equal

25
Q

Qué significa el acrónimo LT

A

Lesser Than

26
Q

Qué significa el acrónimo AL

A

Always

27
Q

¿Cuál es la diferencia las banderas de condición en las que se fijan EQ y GE?

A

EQ solo se fija en el bit de condición Z, mientras que GE también se fija en el bit de negativo N

28
Q

¿Qué significa el acrónimo MVN?

A

Move Negative. Pone en un registro el negativo lógico de un valor

29
Q

¿Qué hace la siguiente línea LSL R0, R5, #7?

A

Es un logical shift left, multiplica R5*2^7 agregando 7 0’s al final

30
Q

¿Cuál es la diferencia entre ASR y LSR

A

ASR hace una división aritmética por la potencia de 2

31
Q

¿Para que sirve la instrucción ROR?

A

Pone los bits a partir del valor otorgado al principio y el resto al final

32
Q

¿Cuál es la diferencia entre STR y STRB

A

El sufijo B significa que lo va a hacer sobre un solo byte en lugar de los 4 bytes regulares