¡Esta es una revisión vieja del documento!
Trabajos prácticos primer cuatrimestre
Fe de erratas
1.Página 5. En el ejercicio 5 ítem d, ´
Se recomienda plantear el ejercicio con el siguiente esquema de archivos
Makefile o make.sh : comandos necesarios para construir el binario
linker.lds : script para el enlazador
bochs.cfg : configuración utilizada para el Bochs en cada ejercicio
init.s : solo el código necesario para inicializar al procesador en modo protegido y en
ejercicios posteriores la paginación.
main.s : funcionalidad solicitada en cada ejercicio
functions.s : funciones auxiliares y/o frecuentemente implementadas en ensamblador
functions.c : funciones auxiliares y/o frecuentemente implementadas en C
sys_tables.s : tablas de sistema.
2.Página 5. En el ejercicio 5 la tabla, debería indicar
Sección Dirección inicial Rutinas 00000000h Núcleo 00300000h Pila 1FFFB000h Secuencia inicialización ROM FFFFF000h Vector de reset FFFFFFF0h
3.Página 5. En el ejercicio 6 ítem a, debería indicar
Almacenar en una tabla de 64kB las teclas presionadas que corresponden a dígitos hexadecimales. A tal fin se debe realizar una rutina que encueste el buffer de teclado (dirección de E/S 0x60 datos y 0x64 estado/comando) en forma periódica. Al llegar al final de la tabla se sobrescriben los valores iniciales.
4.Página 7. En el ejercicio 8 ítem b, debería indicar
Los dígitos correspondientes al alfabeto hexadecimal conformarán un número de 64bits, es decir si se presionan las teclas 1234ABCD, se debe almacenar en la tabla de dígitos como una entrada que contiene al número 000000001234ABCDh. Cada nuevo número se insertará en la tabla cuando se presione ENTER. Por razones de simplicidad el buffer circular de teclado dispondrá de una longitud de 9 bytes. En la tabla se ingresarán los últimos 16 dígitos hexadecimales presionados al pulsar ENTER (123JHAB4567CDEFLMN.ENTER equivale a 000123AB4567CDEFh). Si al presionar ENTER se han ingresado menos de 8Bytes, se completarán con ceros en las posiciones MSB (1E.ENTER equivale 000000000000001Eh).
5.Página 11. En el ejercicio 13 ítem b, debería indicar
Modificar el mapa de memoria a alguno de los siguientes esquemas (indicar el esquema utilizado en el código) **Opción A** Sección Dirección física inicial Dirección lineal inicial ISR 00000000h 00000000h Tablas de sistema 00100000h 00100000h Tablas de paginación 00110000h 00110000h Núcleo 00300000h 00300000h TEXT Tarea 0 00301000h 00400000h BSS Tarea 0 00302000h 00401000h DATA Tarea 0 00303000h 00402000h Tabla de dígitos 00310000h 00310000h TEXT Tarea 1 00321000h 00410000h BSS Tarea 1 00322000h 00411000h DATA Tarea 1 00323000h 00412000h TEXT Tarea 2 00331000h 00420000h BSS Tarea 2 00332000h 00421000h DATA Tarea 2 00333000h 00422000h Datos 003E0000h 003E0000h Pila Núcleo 1FFFB000h 1FFFB000h Pila Tarea 0 1FFFC000h 00403000h Pila Tarea 2 1FFFD000h 00423000h Pila Tarea 1 1FFFE000h 00413000h Secuencia inicialización ROM FFFF0000h FFFFF000h Vector de reset FFFFFFF0h FFFFFFF0h
Opción B
Sección Dirección física inicial Dirección lineal inicial ISR 00000000h 00000000h Tablas de sistema 00100000h 00100000h Tablas de paginación 00110000h 00110000h Núcleo 00300000h 00300000h TEXT Tarea 0 00301000h 00410000h BSS Tarea 0 00302000h 00411000h DATA Tarea 0 00303000h 00412000h Tabla de dígitos 00310000h 00310000h TEXT Tarea 1 00321000h 00410000h BSS Tarea 1 00322000h 00411000h DATA Tarea 1 00323000h 00412000h TEXT Tarea 2 00331000h 00410000h BSS Tarea 2 00332000h 00411000h DATA Tarea 2 00333000h 00412000h Datos 003E0000h 003E0000h Pila Núcleo Tarea 0 1FFF8000h 00414000h Pila Núcleo Tarea 2 1FFF9000h 00414000h Pila Núcleo Tarea 1 1FFFA000h 00414000h Pila Núcleo 1FFFB000h 1FFFB000h Pila Usuario Tarea 0 1FFFC000h 00413000h Pila Usuario Tarea 2 1FFFD000h 00413000h Pila Usuario Tarea 1 1FFFE000h 00413000h Secuencia inicialización ROM FFFF0000h FFFFF000h Vector de reset FFFFFFF0h FFFFFFF0h