Consultas sobre práctica 1

Consultas sobre práctica 1

de Roberto Carlos Barrera Torres -
Número de respuestas: 1

Estimados, buenas noches:

Recopilamos las siguientes dudas sobre esta primera práctica. Creo no se han consultado antes en el foro. 

1. ¿El SP lo deberíamos inicializar con el valor 0xB000 o 0xFFFF? Ese es el rango de memoria disponible para el usuario, pero nos generó la duda. Por ahora lo pusimos en 0xFFFF y funciona bien. 

2. ¿Las constantes solo deben definirse todas en los archivos de prueba individuales, o deben ir en el de subrutinas.s? Tuvimos un par de errores de compilación al principio, y de momento los pusimos solo en las pruebas.

3. ¿En binapbcd debemos controlar que los números sean menores a 100 o asumimos que siempre los son, sin verificar nada?

4. ¿En la prueba de despreloj solo debemos inicializar el registro IX con un valor cualquiera y luego vamos asignando diferentes valores de memoria a las posiciones (IX+0), (IX+1), (IX+2) desde el debugger? ¿O a qué se refieren con inicializar sistema en el pseudocódigo brindado?

Gracias y saludos,

Rob

En respuesta a Roberto Carlos Barrera Torres

Re: Consultas sobre práctica 1

de Julio Perez -

1. Inicialización de SP.

Pensá en cada caso donde se va a escribir en memoria cuando ejecutes un PUSH o un CALL. Pensá hacia qué lado se va a extender el stack a medida que se agreguen nuevos push y call anidados. Tenés que asegurar que no te vas a salir del área de memoria que tenés asignada (0xB000-0xFFFF) y que incluso dentro de esa área el stack no va a sobreescribir áreas de memoria usada para tus programas, variables o tablas.

2. ¿Las constantes solo deben definirse todas en los archivos de prueba individuales, o deben ir en el de subrutinas.s?

Como prefieran. Lo usual y sano es poner todos los EQU juntos para que sea fácil encontrar dónde está definida una constante. En este caso que varios programas comparten las misas definiciones de constantes (p. ej. las direcciones de los puertos) puede tener sentido incluir al comienzo del archivo de subrutinas la definición de las constantes comunes a todos los programas de prueba, y al comienzo de cada programa de prueba la definición de constantes que solo se usan ahí si las hubiera.

3. ¿En binapbcd debemos controlar que los números sean menores a 100 o asumimos que siempre los son, sin verificar nada?

Pueden asumir que son menores que 100

4. ¿En la prueba de despreloj 

Lo más sano sería que reserven lugar memoria para la estructura de datos con segundos, centésimas y bandera, poniendo una etiqueta para poder referirse fácilmente a esa dirección. Después en la inicialización pueden cargar en IX el valor de esa etiqueta. Pueden poner instrucciones para fijar el valor inicial de segundos, centésimas y bandera. Después pueden cambiarlos con comandos del debugger. Tienen también que inicializar el SP.


Espero haber aclarado las dudas, pero si hace falta consulten nuevamente.

Saludos,

julio