viernes, 21 de mayo de 2010

Digitales II – Prof. Mendoza – 3ª evaluación del Semestre 2005-II

Este programa emula el comportamiento de un ascensor, no tengo el enunciado pero el movimiento del mismo depende del modo seleccionado. Si mal no recuerdo era  estacionamiento  macanico pero no estoy 100% seguro de eso.

   1:          ORG 2000H


   2:          LD SP,3DFFH


   3:          LD A,00001111B


   4:          OUT (CA),A


   5:          LD A,11001111B


   6:          OUT (CB),A


   7:          LD A,00000111B


   8:          OUT (CB),A


   9:          LD IX,CONT


  10:  PUERTO:        IN A,(PB)


  11:          BIT 2,A


  12:          JP NZ,ENTRAR


  13:          BIT 1,A


  14:          JP NZ,SALIR


  15:          JP PUERTO


  16:  ENTRAR:        LD HL,PUESTOS


  17:          LD A,01000000B


  18:          OUT (PA),A


  19:  AQUI:        IN A,(PB)


  20:          BIT 2,A


  21:          JP NZ,AQUI


  22:          LD A,0


  23:          OUT (PA),A


  24:          LD D,38H


  25:  AQUI1:        LD A,0


  26:          CP (HL)


  27:          JP Z,VACIO


  28:          INC HL


  29:          DEC D


  30:          LD A,D


  31:          CP 0


  32:          JP Z,LLENO


  33:          AND 0FH


  34:          CP 0


  35:          JP NZ,AQUI1


  36:          LD A,D


  37:          SUB 08


  38:          LD D,A


  39:          JP AQUI1


  40:  LLENO:        LD A,(PB)


  41:          SET 3,A


  42:          OUT (PB),A


  43:          JP AQUI8


  44:  VACIO:        LD A,D


  45:          AND 0FH


  46:          LD C,A


  47:          LD A,D


  48:          AND 0F0H


  49:          RRCA


  50:          RRCA


  51:          RRCA


  52:          RRCA


  53:          LD B,A


  54:          LD (HL),24H


  55:          DEC (IX)


  56:          PUSH BC


  57:          DEC C


  58:          LD A,C


  59:          OUT (PA),A


  60:          POP BC


  61:          PUSH BC


  62:  AQUI2:        CALL IZQUIERDA


  63:          DEC C


  64:          JP NZ,AQUI2


  65:          CALL APAGAR


  66:  AQUI3:        IN A,(PB)


  67:          BIT 0,A


  68:          JP Z,AQUI3


  69:  AQUI4:        CALL SUBIR


  70:          DJNZ AQUI4


  71:          CALL AVANZAR


  72:          CALL APAGAR


  73:  AQUI5:        IN A,(PB)


  74:          BIT 0,A


  75:          JP NZ,AQUI5


  76:          CALL RETROCEDER


  77:          POP BC


  78:  AQUI6:        CALL DERECHA


  79:          DEC C


  80:          JP NZ,AQUI6


  81:  AQUI7:        CALL ABAJO


  82:          DJNZ AQUI7


  83:          CALL APAGAR


  84:          LD A,(IX)


  85:          CP 0


  86:          JP NZ,PUERTO


  87:          IN A,(PB)


  88:          SET 3,A


  89:          OUT (PB),A


  90:  AQUI8:        IN A,(PB)


  91:          BIT 1,A


  92:          JP Z,AQUI8


  93:  SALIR:        LD HL,PUESTOS


  94:          LD IY,DESPLAZA


  95:          LD B,32


  96:          LD A,0


  97:  AQUI10:        NOP


  98:          NOP


  99:          NOP


 100:          CP 0


 101:          JP Z,AQUI10


 102:  AQUI12:        CP (IY)


 103:          JP Z,AQUI11


 104:          INC IY


 105:          INC IY


 106:          DJNZ AQUI12


 107:          JP SALIR


 108:  AQUI11:        LD B,(IY+1)


 109:          LD A,B


 110:          CP 0


 111:          JP Z,AQUI22


 112:  AQUI13:        INC HL


 113:          DJNZ AQUI13


 114:  AQUI22:        LD A,(IY)


 115:          LD D,A


 116:          LD A,(HL)


 117:          CP 24H


 118:          JP NZ,PUERTO


 119:          LD A,D


 120:          AND 0FH


 121:          LD C,A


 122:          LD A,D


 123:          AND 0F0H


 124:          RLCA 


 125:          RLCA


 126:          RLCA


 127:          RLCA


 128:          LD B,A


 129:          PUSH BC


 130:  AQUI14:        CALL SUBIR


 131:          DJNZ AQUI14


 132:          LD B,C


 133:  AQUI15:        CALL IZQUIERDA


 134:          DJNZ AQUI15


 135:          CALL AVANZAR


 136:          CALL APAGAR


 137:  AQUI16:        IN A,(PB)


 138:          BIT 0,A


 139:          JP Z,AQUI16


 140:          LD (HL),0


 141:          INC (IX)


 142:          CALL RETROCEDER


 143:          POP BC


 144:  AQUI17:        CALL ABAJO


 145:          DJNZ AQUI17


 146:          CALL APAGAR


 147:  AQUI18:        IN A,(PB)


 148:          BIT 0,A


 149:          JP NZ,AQUI18


 150:          LD B,C


 151:  AQUI19:        CALL DERECHA


 152:          DJNZ AQUI19


 153:          CALL APAGAR


 154:  AQUI20:        IN A,(PB)


 155:          BIT 1,A


 156:          JP Z,AQUI20


 157:          IN A,(PA)


 158:          SET 7,A


 159:          OUT (PA),A


 160:  AQUI21:        IN A,(PB)


 161:          BIT 1,A


 162:          JP NZ,AQUI21


 163:          LD A,0


 164:          OUT (PA),A


 165:          RES 3,A


 166:          OUT (PB),A


 167:          JP PUERTO


 168:  APAGAR:        LD A,0


 169:          OUT (PA),A


 170:          RET


 171:  AVANZAR:    LD A,00001000B


 172:          OUT (PA),A


 173:          RET


 174:  RETROCEDER:    LD A,00010000B


 175:          OUT (PA),A


 176:          RET


 177:  IZQUIERDA:    LD A,00011000B


 178:          OUT (PA),A


 179:          RET


 180:  DERECHA:    LD A,00100000B


 181:          OUT (PA),A


 182:          RET


 183:  SUBIR:        LD A,00101000B


 184:          OUT (PA),A


 185:          RET


 186:  ABAJO:        LD A,00110000B


 187:          OUT (PA),A


 188:          RET


 189:          


 190:          ORG 1000H


 191:  PUESTOS        DS 32


 192:  DESPLAZA    DB 01H,31,02H,30,03H,29,04H,28,05H,27,06H,26,07H,25,08H,24


 193:          DB 11H,23,12H,22,13H,21,14H,20,15H,19,16H,18,17H,17,18H,16


 194:          DB 21H,15,22H,14,23H,13,24H,12,25H,11,26H,10,27H,09,28H,08


 195:          DB 31H,07,32H,06,33H,05,34H,04,35H,03,36H,02,37H,01,38H,00


 196:  CONT        DB 32


 197:  PA    EQU 04H


 198:  PB    EQU 05H


 199:  CA    EQU 06H


 200:  CB    EQU 07H


 201:          END


No hay comentarios:

Publicar un comentario