¡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