¡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

6.Página 13. En el ejercicio 15, 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                       00500000h                00500000h
 TEXT Tarea 0                 00501000h                00600000h
 BSS Tarea 0                  00502000h                00601000h
 DATA Tarea 0                 00503000h                00602000h
 Tabla de dígitos             00510000h                00510000h
 TEXT Tarea 1                 00521000h                00610000h
 BSS Tarea 1                  00522000h                00611000h
 DATA Tarea 1                 00523000h                00612000h
 TEXT Tarea 2                 00531000h                00620000h
 BSS Tarea 2                  00532000h                00621000h
 DATA Tarea 2                 00533000h                00622000h
 TEXT Tarea 3                 00541000h                00630000h
 BSS Tarea 3                  00542000h                00631000h
 DATA Tarea 3                 00543000h                00632000h
 TEXT Tarea 4                 00551000h                00640000h
 BSS Tarea 4                  00552000h                00641000h
 DATA Tarea 4                 00553000h                00642000h
 Datos                        005E0000h                005E0000h
 Pila Tarea 3                 1FFF9000h                00633000h
 Pila Tarea 4                 1FFFA000h                00643000h
 Pila Núcleo                  1FFFB000h                1FFFB000h
 Pila Tarea 0                 1FFFC000h                00603000h
 Pila Tarea 2                 1FFFD000h                00623000h
 Pila Tarea 1                 1FFFE000h                00613000h
 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                       00500000h                00500000h
 TEXT Tarea 0                 00501000h                00610000h
 BSS Tarea 0                  00502000h                00611000h
 DATA Tarea 0                 00503000h                00612000h
 Tabla de dígitos             00510000h                00510000h
 TEXT Tarea 1                 00521000h                00610000h
 BSS Tarea 1                  00522000h                00611000h
 DATA Tarea 1                 00523000h                00612000h
 TEXT Tarea 2                 00531000h                00610000h
 BSS Tarea 2                  00532000h                00611000h
 DATA Tarea 2                 00533000h                00612000h
 TEXT Tarea 3                 00541000h                00610000h
 BSS Tarea 3                  00542000h                00611000h
 DATA Tarea 3                 00543000h                00612000h
 TEXT Tarea 4                 00551000h                00610000h
 BSS Tarea 4                  00552000h                00611000h
 DATA Tarea 4                 00553000h                00612000h
 Datos                        005E0000h                005E0000h
 Pila Núcleo Tarea 3          1FF01000h                00614000h
 Pila Núcleo Tarea 4          1FF02000h                00614000h
 Pila Usuario Tarea 3         1FF0E000h                00613000h
 Pila Usuario Tarea 4         1FF0F000h                00613000h
 Pila Núcleo Tarea 1          1FFFA000h                00614000h
 Pila Núcleo Tarea 0          1FFF8000h                00614000h
 Pila Núcleo Tarea 2          1FFF9000h                00614000h
 Pila Núcleo Tarea 1          1FFFA000h                00614000h
 Pila Núcleo                  1FFFB000h                1FFFB000h
 Pila Usuario Tarea 0         1FFFC000h                00613000h
 Pila Usuario Tarea 2         1FFFD000h                00613000h
 Pila Usuario Tarea 1         1FFFE000h                00613000h
 Secuencia inicialización ROM FFFF0000h                FFFFF000h
 Vector de reset              FFFFFFF0h                FFFFFFF0h