Anda di halaman 1dari 4

Tema 3.

Ejercicio 1
En un microcontrolador de la familia MSP430 (modelo de almacenamiento de
tipo word, y little endian) el estado de la memoria, del registro R15 y del registro
SP es el que muestra la figura. En ese momento se ejecuta la instrucción:
PUSH R15
•Averiguar qué hace está instrucción. Pista: Esto es lo que dice la
documentación que hace: SP-2 → SP; R15 → @SP
(Introducción al Sistema de Programacion del MSP430 Texas)
•Asegurarse de que no hay errores en la representación de la memoria o
registros que vemos debajo.
•Describir el estado de R15, SP y la memoria después de la ejecución de la
instrucción.

R15 0x1234
0x9FB 0x0F 0x0E
0x9FE 0x0D 0x0C

SP 0x0A00
0xA00 0x0B 0x0A

Nota: la representación de la pila está al “revés” por ser así mas intuitiva.

SISTEMAS DIGITALES 09/10 1.1

Tema 3. Ejercicio 1
• PUSH sirve para meter datos en la pila
• La pila crece hacia direcciones más
pequeñas (siempre pares)
PUSH src = SP-2 → SP ; src → @SP

0x9FC 0x9FB 0x0F 0x0E


R15 0x1234
0x9FE 0x0D 0x0C

SP 0x0A00
0xA00 0x0B 0x0A

PUSH R15

SISTEMAS DIGITALES 09/10 1.2


Tema 3. Ejercicio 1
• PUSH sirve para meter datos en la pila.
• La pila crece hacia direcciones más
pequeñas
PUSH src = SP-2 → SP; src → @SP

0x9FC 0x0F 0x0E


R15 0x1234

SP
0x9FE 0x0D 0x0C
0x09FE
0xA00 0x0B 0x0A

PUSH R15

SISTEMAS DIGITALES 09/10 1.3

Tema 3. Ejercicio 1
• PUSH sirve para meter datos en la pila.
• La pila crece hacia direcciones más
pequeñas
PUSH src = SP-2 → SP ; src → @SP

0x9FC 0x0F 0x0E


R15 0x1234

SP
0x9FE 0x34 0x12
0x09FE
0xA00 0x0B 0x0A

PUSH R15

SISTEMAS DIGITALES 09/10 1.4


Tema 3. Ejercicio 1
• PUSH sirve para meter datos en la pila.
• La pila crece hacia direcciones más
pequeñas
PUSH src = SP-2 → SP; src → @SP

0x9FC 0x0F 0x0E


R15 0x1234

SP 0x09FE
0x9FE 0x34 0x12
0xA00 0x0B 0x0A

PUSH R15

•¿Como cambiaría el ejercicio, si en vez de un MSP430, hubiésemos empleado


un microcontrolador ARM (word, big-endian)?
SISTEMAS DIGITALES 09/10 1.5

Tema 3. Ejercicio 2
En un microcontrolador de la familia MSP430 (tipo word, little endian) el estado de la
memoria, del registro R6 y del registro PC es el que muestra la figura. En ese
momento se ejecuta la instrucción:
BR R6
•Averiguar qué hace está instrucción. Pista: Esto es lo que dice la documentación que
hace: R6 Æ PC
•Asegurarse de que no hay errores en la representación de la memoria o registros.
•Describir el estado de R6 y PC después de la ejecución de la instrucción.

01206h 0x50 0x33


R6 0x084Ah
01204h 0x46 0x00
01202h 0x00 0x4B

PC 0x1203

SISTEMAS DIGITALES 09/10 1.6


Tema 3. Ejercicio 3
En un microcontrolador de la familia MSP430 (tipo word, little endian) el estado de la
memoria, del registro R12 y del registro SP es el que muestra la figura. En ese
momento se ejecuta la instrucción:
POP.B R12
•Averiguar qué hace está instrucción. Pista: Esto es lo que dice la documentación que
hace: @SP → temp ;SP+2 → SP; tempÆR12
•Asegurarse de que no hay errores en la representación de la memoria o registros.
•Describir el estado de R12, SP y la memoria después de la ejecución de la
instrucción.

0x9FA 0x65 0x2A


R12 0x07B0
0x9F8 0x3E 0x00
0x9F6 0xFF 0x20

SP 0x09F7

SISTEMAS DIGITALES 09/10 1.7

Tema 3. Ejercicio 4
En un microcontrolador de la familia MSP430 (tipo word, little endian) el estado de la
memoria, del registro R10 y del registro PC es el que muestra la figura. En ese
momento se ejecuta la instrucción:
ADD.B #0x3F,R10
•Averiguar qué hace está instrucción. Pista: Esto es lo que dice la documentación que
hace: src + dst → dst
•Asegurarse de que no hay errores en la representación de la memoria o registros.
(Nota: el código maquina para la instrucción es, word a word: “0x507A 0x003F”)
•Describir el estado de R10, PC y la memoria después de la ejecución de la
instrucción.

0x120A 0xB6 0x7E


R10 0x12BA
0x1208 0x00 0x3F
0x1206 0x7A 0x50

PC 0x1206

SISTEMAS DIGITALES 09/10 1.8

Anda mungkin juga menyukai