Examen Parcial - 66.09. Laboratorio de Microcomputadoras [Foros-FIUBA::Wiki]
 

Examen Parcial - 66.09. Laboratorio de Microcomputadoras

Cátedra: 4
Fecha: Primera Oportunidad - Primer Cuatrimestre 2006
Día: 19/05/2006

Esta página está incompleta; podés ayudar completando el material.

Enunciado

Tema 3

Punto I

Dado un string ubicado a partir de una dirección de memoria RAM interna, de longitud variable (máximo 20 caracteres), y terminado con el carácter “\0” (ASCII 00), escribir una rutina que retorne la dirección del primer carácter distinto de “espacio” (ASCII 0x20) (equivalente a strpad())

Punto II

Colocar 1 chip de 4Kbytes y 3 chips de 1Kbyte de RAM en el mapa de memoria de un microcontrolador de la familia MS-51, siendo los únicos chips de memoria que se conectarán.
Dar una solución donde la direcciónd de los chips sea correlativa y otra donde esa condición no sea necesaria.

Punto III

Escriba las instrucciones necesarias para cargar en el acumulador auxiliar B los siguientes valores:

  1. Una constante ubicada en una posición dada de memoria de programa
  2. El tercer valor de una tabla que arranca en una posición dada de memoria de programa
  3. El valor de una variable ubicada en una posición de memoria RAM interna
  4. El valor de una variable ubicada en una posición de memoria RAM externa
  5. El valor constante 27

Resolución

Tema 3

Punto I

;strpad
; Se recibe el comienzo en R0
; Se devuelve el valor en R0

STRPAD: CJNE @R0, #' ', END  ; Comparo carácter con puntero, de ser distintos voy a END
        INC R0               ; Incremento puntero
        SJMP STRPAD          ; Repito el bucle
END:    RET                  ; Devuelvo el valor en R0

Punto II

Punto III

  1. CLR A                ; Limpio A
    MOV DPTR, #POSICION  ; Cargo posición en DPTR
    MOVC A, @A + DPTR    ; Leo de posición
    MOV B, A             ; Cargo en B
  2. MOV A, #2            ; Cargo en A el índice de la tabla
    MOV DPTR, #POSICION  ; Cargo posición en DPTR
    MOVC A, @A + DPTR    ; Leo de posición + 2
    MOV B, A             ; Cargo en B
  3. MOV B, #POSICION     ; Cargo directo-directo en B
  4. MOV DPTR, #POSICION  ; Cargo posición en DPTR
    MOVX A, @DPTR        ; Leo de posición
    MOV B, A             ; Cargo en B
  5. MOV B, #27           ; Cargo directo-inmediato en B

Discusión

Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.
materias/66/09/parcial_4_20060519_1.txt · Última modificación: 2006/05/28 11:32 por santisis
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki