viernes, 21 de mayo de 2010

Digitales II – Prof. Mendoza – 1ª Evaluacion del Semestre 2006-I

El enunciado de esta evaluacion es casi igual a la del semestre pasado pero aqui no hay limites para la cantidad de numeros que se introducen por teclado, pero es lo mismo ordenar, separar pares, etc…

 

   1:          ORG 2000H


   2:          LD SP,3DFFH


   3:  INICIO:        CALL BORRAR_PAN


   4:          LD IY,TBLAHEX


   5:          LD IX,TABLA


   6:  AQUI70:        CALL SCAN


   7:          CP "X"


   8:          JP Z,AQUI73


   9:          CP "x"


  10:          JP Z,AQUI73


  11:          CP 30H


  12:          JR C,AQUI70


  13:          CP 47H


  14:          JP NC,AQUI70


  15:          LD (IX),A


  16:          INC IX


  17:          LD (IX),24H


  18:          LD H,A


  19:          PUSH IX


  20:          LD IX,TABLA


  21:          LD A,2


  22:          CALL ENVIAR_MEN


  23:          POP IX


  24:  AQUI71:        CALL SCAN


  25:          CP 30H


  26:          JR C,AQUI71


  27:          CP 47H


  28:          JP NC,AQUI71


  29:          LD (IX),A


  30:          INC IX


  31:          LD (IX),24H


  32:          LD L,A


  33:          PUSH IX


  34:          LD IX,TABLA


  35:          LD A,2


  36:          CALL ENVIAR_MEN


  37:          POP IX


  38:          CALL TR2


  39:          INC E


  40:          LD A,E


  41:          CP 30


  42:          JP NZ,AQUI70


  43:  AQUI73:        CALL BORRAR_PAN


  44:          LD IX,MENU1


  45:          LD A,1


  46:          CALL ENVIAR_MEN


  47:          LD IX,MENU2


  48:          LD A,2


  49:          CALL ENVIAR_MEN


  50:          LD IX,MENU3


  51:          LD A,3


  52:          CALL ENVIAR_MEN


  53:          LD IX,MENU4


  54:          LD A,4


  55:          CALL ENVIAR_MEN


  56:          CALL SCAN


  57:          CP 20H


  58:          JP NZ,AQUI73


  59:          CALL BORRAR_PAN


  60:          LD B,E


  61:          LD IX,TBLAHEX


  62:          LD IY,AUX


  63:  AQUI20:        LD A,(IX)


  64:          LD (IY),A


  65:          INC IX


  66:          INC IY


  67:          DJNZ AQUI20


  68:          


  69:  ; ORDENACION


  70:  ; PRIMERO SE ORDENA LA TABLA CON EL METODO DE LA BURBUJA Y LUEGO SE INSPECCIONA LA TABLA


  71:  ; ORDENADA BUSCANDO LOS NUMEROS PARES E IMPARES


  72:   


  73:          LD B,E


  74:  AQUI02:        LD C,1


  75:          LD IX,AUX


  76:  AQUI01:        LD A,(IX)


  77:          CP (IX+1)


  78:          CALL NC,MUEVO


  79:          INC IX


  80:          INC C


  81:          LD A,C


  82:          CP E


  83:          JP NZ,AQUI01


  84:          DJNZ AQUI02


  85:          


  86:  ; *****************


  87:          LD C,E


  88:          LD HL,AUX


  89:          LD IX,TPAR


  90:          LD IY,TIMP


  91:          LD DE,0


  92:          LD B,C


  93:  AQUI03:        LD A,(HL)


  94:          AND 1


  95:          CP 0


  96:          JP NZ,NOPAR


  97:          LD A,(HL)


  98:          LD (IX),A


  99:          DEC IX


 100:          INC D


 101:          JP PROXIMO


 102:  NOPAR:        LD A,(HL)


 103:          LD (IY),A


 104:          INC IY


 105:          INC E


 106:  PROXIMO:    INC HL


 107:          DJNZ AQUI03


 108:          LD B,D


 109:          INC IX


 110:          LD IY,TPAR2


 111:  AQUI50:        LD H,(IX)


 112:          LD L,(IX)


 113:          CALL TR


 114:          INC IX


 115:          DJNZ AQUI50


 116:          LD IX,TIMP


 117:          LD IY,TIMP2


 118:          LD B,E


 119:  AQUI40:        LD H,(IX)


 120:          LD L,(IX)


 121:          CALL TR


 122:          INC IX


 123:          DJNZ AQUI40


 124:          LD B,E


 125:          LD C,E


 126:          LD E,0


 127:          LD IY,TIMP3


 128:          LD IX,TIMP


 129:          LD HL,TBCD


 130:          LD (HL),0


 131:  AQUI13:        LD A,(IX)


 132:          CP 64H


 133:          JP NC,NOBCD


 134:          LD (IY),A


 135:          INC IY


 136:  AQUI12:        INC (HL)


 137:          LD A,(HL)


 138:          AND 0FH


 139:          CP 0AH


 140:          JP C,AQUI11


 141:          LD A,(HL)


 142:          ADD 6


 143:          LD (HL),A


 144:  AQUI11:        DEC (IX)


 145:          LD A,(IX)


 146:          CP 0


 147:          JP NZ,AQUI12


 148:          INC HL


 149:          LD (HL),0


 150:          INC E


 151:  NOBCD:        INC IX


 152:          DJNZ AQUI13


 153:          


 154:          LD IX,TBCD


 155:          LD IY,TBCD2


 156:          LD B,E


 157:  AQUI55:        LD H,(IX)


 158:          LD L,(IX)


 159:          CALL TR


 160:          INC IX


 161:          DJNZ AQUI55


 162:   


 163:  ; SUMA DE TODOS LOS NUMEROS IMPARES INGRESADOS


 164:  ; SE USA HL Y EL PAR DE REGISTRO "DE" PARA REALIZAR LA SUMA DE 16 BITS


 165:          LD HL,0


 166:          LD IY,TIMP3


 167:          LD B,C


 168:          LD D,0


 169:  AQUI30:        LD A,(IY)


 170:          CP 64H


 171:          JP NC,AQUI35


 172:          LD E,(IY)


 173:          ADD HL,DE


 174:  AQUI35:        INC IY


 175:          DJNZ AQUI30


 176:          LD IX,TBLASUM


 177:          LD (IX),0


 178:          LD (IX+1),0


 179:          LD (IX+2),0


 180:          LD (IX+3),0


 181:  AQUI31:        INC (IX+3)


 182:          LD A,(IX+3)


 183:          CP 10


 184:          JR C,AQUI32


 185:          LD (IX+3),0


 186:          INC (IX+2)


 187:          LD A,(IX+2)


 188:          CP 10


 189:          JR C,AQUI32


 190:          LD (IX+2),0


 191:          INC (IX+1)


 192:          LD A,(IX+1)


 193:          CP 10


 194:          JR C,AQUI32


 195:          LD (IX+1),0


 196:          INC (IX)


 197:  AQUI32:        DEC HL


 198:          LD A,L


 199:          CP 0


 200:          JR NZ,AQUI31


 201:          LD A,H


 202:          CP 0


 203:          JP NZ,AQUI31


 204:          LD B,4


 205:  AQUI33:        LD A,(IX)


 206:          OR 30H


 207:          LD (IX),A


 208:          INC IX


 209:          DJNZ AQUI33


 210:          LD (IX),24H


 211:          LD IX,TPAR2


 212:          LD A,1


 213:          CALL ENVIAR_MEN


 214:          LD IX,TIMP2


 215:          LD A,2


 216:          CALL ENVIAR_MEN


 217:          LD IX,TBCD2


 218:          LD A,3


 219:          CALL ENVIAR_MEN


 220:          LD IX,TBLASUM


 221:          LD A,4


 222:          CALL ENVIAR_MEN


 223:  AQUI60:        CALL SCAN


 224:          CP 1BH


 225:          JR Z,INTER


 226:          JR AQUI60


 227:  INTER:        LD HL,BLANK


 228:          PUSH HL


 229:          LD IX,MENSAJE


 230:  LOOP:        EX (SP),IX


 231:          LD A,4


 232:          PUSH IX


 233:          CALL ENVIAR_MEN


 234:          POP IX


 235:          LD B,50


 236:  HELFSEG:    CALL SCAN1


 237:          CP "S"


 238:          JP Z,ENDING


 239:          CP "N"


 240:          JP Z,INICIO


 241:          DJNZ HELFSEG


 242:          JR LOOP


 243:  ENDING:        RST 30H


 244:   


 245:  MUEVO:        LD D,A


 246:          LD A,(IX+1)


 247:          LD (IX),A


 248:          LD (IX+1),D


 249:          RET


 250:  TR:        LD A,H


 251:          AND 0F0H


 252:          RLCA


 253:          RLCA


 254:          RLCA


 255:          RLCA


 256:          CP 0AH


 257:          CALL NC,LETRA


 258:          ADD 30H


 259:          LD H,A


 260:          LD A,L


 261:          AND 0FH


 262:          CP 0AH


 263:          CALL NC,LETRA


 264:          ADD 30H


 265:          LD L,A


 266:          LD (IY),H


 267:          LD (IY+1),L


 268:          INC IY


 269:          INC IY


 270:          LD (IY),24H


 271:          RET


 272:  LETRA:        ADD 7


 273:          RET


 274:  TR2:        LD A,H


 275:          CP 3AH


 276:          CALL NC,LETRA2


 277:          SUB 30H


 278:          RLCA


 279:          RLCA


 280:          RLCA


 281:          RLCA


 282:          LD H,A


 283:          LD A,L


 284:          CP 3AH


 285:          CALL NC,LETRA2


 286:          SUB 30H


 287:          OR H


 288:          LD (IY),A


 289:          INC IY


 290:          RET


 291:  LETRA2:        SUB 7


 292:          RET


 293:   


 294:          ORG 3000H


 295:  TABLA    DS 70


 296:  AUX    DS 40


 297:  TBLAHEX    DS 40 


 298:  TBCD    DS 40


 299:  TBCD2    DS 80


 300:  TPAR    DS 40


 301:  TPAR2    DS 80


 302:  TIMP    DS 40


 303:  TIMP2    DS 80


 304:  TIMP3    DS 40


 305:  TBLASUM    DS 10


 306:  MENSAJE DB " DESEA TERMINAR? SI O NO? (S/N)  $"


 307:  BLANK    DB "                                 $"


 308:  MENU1    DB " ***** ORDENACION DE NUMEROS PARES E IMPARES *****$"


 309:  MENU2    DB " ***** TRANSFORMACION DE HEXADECIMAL A BCD   *****$"


 310:  MENU3    DB " ***** SUMA DE TODOS LOS DATOS INTRODUCIDOS  *****$"


 311:  MENU4    DB "          PRESIONE ENTER PARA CONTINUAR           $"


 312:  SCAN1        EQU 0508H


 313:  SCAN        EQU 04F1H


 314:  ENVIAR_MEN    EQU 052BH


 315:  BORRAR_PAN    EQU 055CH


 316:          END


No hay comentarios:

Publicar un comentario