viernes, 21 de mayo de 2010

Digitales II – Prof. Mendoza – 1ª evaluación del Semetre 2005-II

Este programa consistia en introducir 30 digitos hexadecimales, luego se seleccionaban los pares, se ordenaba de mayor a menor y los transformaba a BCD.

   1:          ORG 2000H


   2:          LD SP,3DFFH


   3:  START:          LD B,30


   4:          LD IY,T1


   5:          LD IX,T2


   6:          LD (IX),24H


   7:          LD IX,T3


   8:          LD (IX),24H


   9:          CALL BORRAR


  10:          LD IX,L1


  11:          LD A,1


  12:          CALL MENSAJE


  13:  E1:        CALL SCAN


  14:          JP VNI1


  15:  RE1:        LD IX,T1


  16:          LD A,3


  17:          CALL MENSAJE


  18:  E2:        CALL SCAN


  19:          JP VNI2


  20:  RE2:        LD IX,T1


  21:          LD A,3


  22:          CALL MENSAJE


  23:          INC IY


  24:          LD (IY),20H


  25:          INC IY


  26:          LD (IY),24H


  27:          DJNZ E1


  28:          CALL BORRAR


  29:          JP INICIO


  30:  VNI1:        LD (IY),A


  31:          CP 2FH


  32:          JP C,E1


  33:          LD A,(IY)


  34:          CP 47H


  35:          JP NC,E1


  36:          INC IY


  37:          LD (IY),24H


  38:          JP RE1


  39:  VNI2:        LD (IY),A


  40:          CP 2FH


  41:          JP C,E2


  42:          LD A,(IY)


  43:          CP 47H


  44:          JP NC,E2


  45:          INC IY


  46:          LD (IY),24H


  47:          JP RE2


  48:          


  49:  ; *** RUTINA PARA ORDENAR LOS NUMEROS DE MENOR A MAYOR


  50:  INICIO:         LD B,30


  51:          LD IX,T1


  52:          LD HL,TP


  53:          LD E,30H


  54:          LD D,30H


  55:  SALTO:        LD A,(HL)


  56:          CP D


  57:          JP Z,OTBY


  58:          INC HL


  59:          INC HL


  60:          DJNZ SALTO


  61:  AQUI:        INC E


  62:          LD A,E


  63:          CP 47H


  64:          JP Z,INCD


  65:                  LD B,30


  66:          LD HL,TP


  67:          JP SALTO


  68:  OTBY:        INC HL


  69:          LD A,(HL)


  70:          CP E


  71:          CALL Z,MUEVO


  72:          INC HL


  73:          DJNZ SALTO


  74:          JP AQUI


  75:  INCD:        LD E,30H


  76:          INC D


  77:          LD A,D


  78:          CP 47H


  79:          JP Z,FINR


  80:          LD HL,TP


  81:                  LD B,30


  82:          JP SALTO


  83:  MUEVO:        LD A,D


  84:          LD (IX),A


  85:          INC IX


  86:          LD A,E


  87:          LD (IX),A


  88:          INC IX


  89:          LD (IX),20H


  90:          INC IX


  91:          LD (IX),24H


  92:          RET


  93:  ; *** RUTINA PARA BUSCAR NUMEROS POSITIVOS Y PARES


  94:   


  95:  FINR:        LD IX,T1


  96:          LD A,1


  97:          CALL MENSAJE


  98:          LD HL,TP


  99:          LD IX,T2


 100:                  LD B,30


 101:  SALTO2:        LD A,(HL)


 102:          LD D,A


 103:          AND 0FH


 104:          RLC A


 105:          RLC A


 106:          RLC A


 107:          RLC A


 108:          BIT 7,A


 109:          JP Z,BN


 110:          INC HL


 111:          INC HL


 112:          DJNZ SALTO2


 113:          JP R3


 114:  BN:        INC HL


 115:          LD A,(HL)


 116:          LD E,A


 117:          BIT 0,A


 118:          CALL Z,MUEVO2


 119:          INC HL


 120:          DJNZ SALTO2


 121:          JP R3


 122:  MUEVO2:        LD A,D


 123:          LD (IX),A


 124:          INC IX


 125:          LD A,E


 126:          LD (IX),A


 127:          INC IX


 128:          LD (IX),20H


 129:          INC IX


 130:          LD (IX),24H


 131:          RET


 132:  ; RUTINA PARA UNIR EL CONTENIDO DE DOS LOCALIDADES DE MEMORIA


 133:   


 134:  R3:        LD IX,T2


 135:          LD A,2


 136:          CALL MENSAJE


 137:          LD HL,TP


 138:          LD IX,TJ


 139:                  LD B,30


 140:  SALTO3:        LD A,(HL)


 141:          PUSH AF


 142:          SUB 3AH


 143:          JP NC,TRANS1


 144:          POP AF


 145:          AND 0FH


 146:  AQUI1:        RLC A


 147:          RLC A


 148:          RLC A


 149:          RLC A


 150:          LD D,A


 151:          INC HL


 152:          LD A,(HL)


 153:          PUSH AF


 154:          SUB 3AH


 155:          JP NC,TRANS2


 156:          POP AF


 157:  AQUI2:          AND 0FH


 158:          OR D


 159:          LD (IX),A


 160:          INC IX


 161:          LD (IX),20H


 162:          INC IX


 163:          LD (IX),24H


 164:          INC HL


 165:          DJNZ SALTO3


 166:          JP R4


 167:  TRANS1:        POP AF


 168:          SUB 37H


 169:          JP AQUI1


 170:  TRANS2:        POP AF


 171:          SUB 37H


 172:          JP AQUI2


 173:  R4:        LD HL,TJ


 174:          LD IX,T3


 175:                  LD B,30


 176:  SALTO4:        LD A,(HL)


 177:          SUB 64H


 178:          JP C,TBCD


 179:          INC HL


 180:          INC HL


 181:          DJNZ SALTO4


 182:          JP R5


 183:  ; RUTINA PARA TRANSFORMAR A BCD


 184:  TBCD:        LD C,(HL)


 185:          LD E,30H


 186:          LD D,30H


 187:  AQUI4:        INC E


 188:          DEC C


 189:          LD A,E


 190:          CP 3AH


 191:          CALL Z,AJU1


 192:          LD A,C


 193:          CP 0


 194:          JP NZ,AQUI4


 195:          INC HL


 196:          INC HL


 197:          LD (IX),D


 198:          INC IX


 199:          LD (IX),E


 200:          INC IX


 201:          LD (IX),20H


 202:          INC IX


 203:          LD (IX),24H


 204:          DJNZ SALTO4


 205:          JP R5


 206:  AJU1:        LD E,30H


 207:          INC D


 208:          RET


 209:  R5:        LD IX,T3


 210:          LD A,3


 211:          CALL MENSAJE


 212:          CALL SCAN


 213:          CP 1BH


 214:          JP NZ,START


 215:          RST 30H


 216:   


 217:          ORG 3000H


 218:  TP    DS 90


 219:      DB 24H


 220:  T1    DS 90


 221:      DB 24H


 222:  T2    DS 90


 223:      DB 24H


 224:  TJ     DS 90


 225:      DB 24H


 226:  T3    DS 90


 227:      DB 24H


 228:  L1    DB "INTRODUCE 30 DIGITOS HEXADECIMAL",24H


 229:   


 230:  SCAN    EQU 04F1H


 231:  MENSAJE    EQU 052BH


 232:  BORRAR    EQU 055CH


 233:          END


No hay comentarios:

Publicar un comentario