viernes, 21 de mayo de 2010

Digitales II – Prof. Mendoza – 2ª evaluación del Semestre 2006-I

Este fue el enunciado de esta evaluacion

    1. Todas las rutinas de este programa deben usar CALL
    2. Ubicar todas las letras que no son del alfabeto (español, ver tabla ASCII) que se encuentren en la tabla principal, guardarlas en una tabla nueva.
    3. Ubicar todas las consonantes mayúsculas (ver tabla ASCII) de la tabla principal y convertirlas en minúsculas y ordenarlas antes de guardarlas en otra tabla.
    4. Ubicar todos los números que tengan el bit 3 y el bit 5 en 1, de la tabla principal, pasarlos a una nueva Tabla, intercambiando la parte alta en la baja y la baja en la alta del número guardarlo en la Tabla creada.
    5. Todos los números negativos de la tabla principal hacerle complemento a dos y guardarlos en una nueva tabla.
    6. los primeros 8 números de la Tabla principal deberán se guardados en binario una nueva tabla en solo 32 espacios de memoria, para todos los 8 bits de cada numero hexadecimal tomado de la tabla principal.

 

   1:          ORG 2000H


   2:          LD SP,3DFFH


   3:  ; se hace la comprobacion con el rango de las letras para ello


   4:  ; se usa el par de registro DE para delimitar la comparacion


   5:  ; si es menor que D se copia, y si es menor que E se comprueba


   6:  ; el proximo intervalo


   7:   


   8:  PARTEB:        LD IY,TBLAP


   9:          LD HL,LTRSM


  10:          LD B,100


  11:  SALTO:        LD DE,"AZ"


  12:          INC E


  13:          LD A,(IY)


  14:          CP D


  15:          JP C,JMP2


  16:          CP E


  17:          JP C,NEXT


  18:  NEXT1:        LD DE,"az"


  19:          INC E


  20:          CP D


  21:          JP C,JMP2


  22:          CP E


  23:          JP C,NEXT


  24:          LD D,164


  25:          LD E,165


  26:          CP D


  27:          JP C,JMP2


  28:          CP E


  29:          JP C,NEXT


  30:  JMP2:        CALL COPIAR


  31:  NEXT:        INC IY


  32:          DJNZ SALTO


  33:          JP PC


  34:  COPIAR:        LD (HL),A


  35:          INC HL


  36:          RET


  37:   


  38:  ; se comprueba que el numero sea mayor que 80h, si es mayor el 


  39:  ; numero es negativo y se procede a hacerle complemento a 2


  40:  PE1:        LD IY,TBLAP    


  41:          LD B,100    


  42:          LD HL,TBLCPL


  43:  SALTO2:        LD A,(IY)


  44:          CP 80H


  45:          CALL NC,COMPLE


  46:          INC IY


  47:          DJNZ SALTO2


  48:          JP PF


  49:  COMPLE:        LD A,(IY)


  50:          NEG


  51:          LD (HL),A


  52:          INC HL


  53:          RET


  54:  ; se comprueba que el bit 5 y el bit 3 esten en "1" logico


  55:  ; de ser asi se procede a rotar cuatro veces y moverlo a la 


  56:  ; otra tabla


  57:  PD:        LD IY,TBLAP    


  58:          LD HL,TBLROT     


  59:          LD B,100


  60:  SALTO3:        LD A,(IY)


  61:          CALL b3b6


  62:          INC IY


  63:          DJNZ SALTO3


  64:          JP PE1


  65:  b3b6:        BIT 3,A


  66:          JP Z,VOLVER


  67:          BIT 5,A


  68:          JP Z,VOLVER


  69:          RLCA


  70:          RLCA


  71:          RLCA    


  72:          RLCA


  73:          LD (HL),A


  74:          INC HL


  75:  VOLVER:        RET


  76:   


  77:  ; se comprueba que el datos este en el rango de las letras


  78:  ; mayusculas y luego se compara con la consonante apuntada por


  79:  ; IX, si es igual, obteniendo de esta forma la tabla ordenada


  80:  ; directamente


  81:  PC:        LD IX,VOCALM


  82:          LD HL,VOCLMN


  83:  SALTO5:        LD B,100


  84:          LD IY,TBLAP


  85:  SALTO4:        LD A,(IY)


  86:          CP 42H        


  87:          JP C,JMP1


  88:          CP 5BH


  89:          JP NC,JMP1        


  90:          CP (IX)                                 ; tabla, obteniendolos asi yo ordenados


  91:          CALL Z,CONV     


  92:  JMP1:        INC IY        


  93:          DJNZ SALTO4


  94:          INC IX


  95:          LD A,(IX)


  96:          CP 24H


  97:          JP Z,PD


  98:          JP SALTO5


  99:  CONV:        ADD 20H


 100:          CALL COPIAR


 101:          RET


 102:   


 103:  ; se comprueba el estado de los bits, uno por uno, si el bit


 104:  ; esta en "1" se hace el ajuste, si el bit es revisado es impar


 105:  ; se hace un ajuste en el nibble alto, si el bit es par


 106:  ; se hace ajuste en el nibble bajo


 107:  PF:        LD IY,TBLAP                             ; en la memoria un 


 108:          LD HL,BINART    


 109:          LD B,8        


 110:  SALTO6:        LD A,(IY)


 111:          BIT 7,A


 112:          CALL NZ,AJUSTONA


 113:          BIT 6,A 


 114:          CALL NZ,AJUSTONB


 115:          INC HL


 116:          BIT 5,A


 117:          CALL NZ,AJUSTONA


 118:          BIT 4,A


 119:          CALL NZ,AJUSTONB


 120:          INC HL


 121:          BIT 3,A    


 122:          CALL NZ,AJUSTONA


 123:          BIT 2,A


 124:          CALL NZ,AJUSTONB


 125:          INC HL


 126:          BIT 1,A


 127:          CALL NZ,AJUSTONA


 128:          BIT 0,A


 129:          CALL NZ,AJUSTONB


 130:          INC HL


 131:          INC IY    


 132:          DJNZ SALTO6


 133:          HALT


 134:  AJUSTONA:    SET 4,(HL)


 135:          RET


 136:  AJUSTONB:    SET 0,(HL)


 137:          RET


 138:   


 139:          ORG 2500H


 140:  TBLAP:        DB 41H,42H,43H,4FH,45H,46H,47H,48H,48H,49H,4AH,4BH


 141:          DB 4DH,4CH,4EH,44H,50H,61H,52H,53H,54H,55H,56H,57H


 142:          DB 58H,59H,5AH,51H,62H,63H,64H,65H,66H,68H,67H,70H


 143:          DB 01H,02H,03H,04H,05H,06H,08H,07H,1AH,1CH,2AH,3DH


 144:          DB 61H,65H,63H,68H,6CH,6AH,2BH,2CH,3FH,4AH,5BH,5CH


 145:          DB 6EH,75H,7AH,62H,6BH,66H,09H,78H,64H,20H,23H,67H


 146:          DB 69H,72H,79H,6DH,70H,73H,77H,74H,76H,100,71H,6FH


 147:          DB 00H,10H,13H,18H,29H,24H,30H,35H,16H,17H,85H,39H


 148:          DB 98H,84H,22H,7FH


 149:  LTRSM        DS 100


 150:  VOCLMN        DS 100


 151:  TBLROT        DS 100


 152:  TBLCPL        DS 100


 153:  BINART        DS 32


 154:  VOCALM        DB "BCDFGHJKLMNPQRSTVWXYZ$"


 155:          END


No hay comentarios:

Publicar un comentario