P1 Flashcards
¿A cuántas instrucciones en código máquina corresponde cada instrucción en alto nivel?
1 o más
Uso del registro R0
Argumentos, Valor de retorno, Variable temporal
Uso de los registros R1-R3
Argumentos, Variables temporales
Uso de los registros R4-R11
Variables guardadas
Uso del registro R13
Stack Pointer (SP)
Uso del registro R14
Link Register (LR)
Uso del registro R15
Program Counter (PC)
Forma de escritura de bytes en Little Endian
Little Endian empieza a escribir desde los bytes menos significativos
Tipo de acceso de memoria de la siguiente instrucción LDR R0, [R1, R2]
Offset
Tipo de acceso de memoria de la siguiente instrucción LDR R0, [R1, R2]!
Pre-index
Tipo de acceso de memoria de la siguiente instrucción LDR R0, [R1], R2
Post-index
Registros cambiados al hacer la instrucción LDR R0, [R1, R2]
R0 y el PC
Registros cambiados al hacer la instrucción LDR R0, [R1, R2]!
R0, R1 y PC. En el modo pre-index, se modifica el registro R1 con el desplazamiento R2 antes de cargarlo en R0
Registros cambiados al hacer la instrucción LDR R0, [R1], R2
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
Diferencia en el tratamiento de enteros y chars
Un entero ocupa 4 bytes o 32 bits, mientras que, un char ocupa un byte o 8 bits
Función de la siguiente línea MOV PC, LR
Movemos la dirección de memoria almacenada en el Link Register al Program Counter. Nos movemos a esa línea en el código
Cómo es el ‘crecimiento’ de la memoria pila
Es de forma decremental, es decir, si empieza en la dirección 0x00011400, el siguiente dato estaría en 0x000113FC= 0x00011400-0x00000004
La macro instrucción push {R8, R9, R4}
qué instrucciones realiza
SUB SP, SP, #12 STR R4, [SP, #8] STR R8, [SP, #4] STR R9, [SP]
La macro instrucción pop {R8, R9, R4}
qué instrucciones realiza
LDR R9, [SP] \nLDR R8, [SP, #-4] \nLDR R4, [SP, #-8] \nADD SP, SP, #12
Qué significa el acrónimo EQ
Equal
Qué significa el acrónimo NE
Not Equal
Qué significa el acrónimo GE
Greater or Equal
Qué significa el acrónimo GT
Greater Than
Qué significa el acrónimo LE
Lesser Equal
Qué significa el acrónimo LT
Lesser Than
Qué significa el acrónimo AL
Always
¿Cuál es la diferencia las banderas de condición en las que se fijan EQ
y GE
?
EQ
solo se fija en el bit de condición Z, mientras que GE
también se fija en el bit de negativo N
¿Qué significa el acrónimo MVN?
Move Negative. Pone en un registro el negativo lógico de un valor
¿Qué hace la siguiente línea LSL R0, R5, #7
?
Es un logical shift left, multiplica R5*2^7 agregando 7 0’s al final
¿Cuál es la diferencia entre ASR
y LSR
ASR
hace una división aritmética por la potencia de 2
¿Para que sirve la instrucción ROR?
Pone los bits a partir del valor otorgado al principio y el resto al final
¿Cuál es la diferencia entre STR
y STRB
El sufijo B significa que lo va a hacer sobre un solo byte en lugar de los 4 bytes regulares