Cátedra: 4
Fecha: Primera Oportunidad - Primer Cuatrimestre 2006
Día: 19/05/2006
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())
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.
Escriba las instrucciones necesarias para cargar en el acumulador auxiliar B los siguientes valores:
;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
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
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
MOV B, #POSICION ; Cargo directo-directo en B
MOV DPTR, #POSICION ; Cargo posición en DPTR MOVX A, @DPTR ; Leo de posición MOV B, A ; Cargo en B
MOV B, #27 ; Cargo directo-inmediato en B