viernes, 21 de mayo de 2010

Digitales II – Prof. Mendoza – 1ª evaluación del Semestre 2007-II

este es el enunciado de esta evaluación

Se tienen 3 tablas de datos en memoria cada una con 32h datos de un byte cada uno, el rango de valor en las tablas es de 00h hasta FFh, se debe recorrer la tabla 1 y tabla2, al encontrar un valor par en tabla1 sumarlo con el valor positivos encontrado en la tabla2, que se encuentro al recorrer la tabla y así sucesivamente, el resultado se guardara en un tabla4.

Los valores de la tabla 3 los que sean negativos hacerle el complemento a dos los positivos negarlos y se guardaran en una tabla5.

Una vez terminada esta operación, ordenar las 5 tablas, la información debe presentarse en la pantalla del computador e ir indicando a que tabla corresponde en pantalla para esto debe usar la unidad de desarrollo para presentar la información.

 

   1:          ORG 2000H


   2:          LD SP,3DFFH


   3:  INICIO:        CALL BORRAR_PAN


   4:   


   5:   


   6:          LD IX,TABLA1


   7:          LD IY,TABLA2


   8:          LD HL,TABLA4


   9:          LD B,32H


  10:          LD C,32H


  11:   


  12:  BPAR:        LD A,(IX)


  13:          BIT 0,A


  14:   


  15:          JP Z,BPOS


  16:          INC IX


  17:          DJNZ BPAR


  18:          JP PARTE2


  19:   


  20:          


  21:  BPOS:        LD A,(IY)


  22:          BIT 7,A


  23:          JP Z, SUMO


  24:          INC IY


  25:          DEC C


  26:          JP NZ,BPOS


  27:          LD C,32H


  28:          LD IY,TABLA2


  29:          JP BPOS


  30:          


  31:  SUMO:        LD A,(IX)


  32:          ADD (IY)


  33:          CALL C,AJUSTO


  34:          INC HL


  35:          LD (HL),A


  36:          INC HL


  37:          INC IY


  38:          INC IX


  39:          DJNZ BPARPOS


  40:          JP PARTE2


  41:   


  42:  AJUSTO:        LD (HL),1


  43:          RET


  44:   


  45:   


  46:  PARTE2:


  47:  ; BUSCO NEGATIVO


  48:          


  49:          LD IX,TABLA3


  50:          LD HL,TABLA5


  51:          LD B,32H


  52:   


  53:  BUSCONEG:


  54:          LD A,(IX)


  55:          BIT 7,A


  56:          JP Z,POSIT


  57:          NEG


  58:          JP COPIAR


  59:          


  60:  POSIT:


  61:          NOT


  62:  COPIAR:


  63:          INC IX


  64:          LD (HL),A


  65:          INC HL


  66:          DJNZ BUSCONEG


  67:   


  68:   


  69:   


  70:  ; MOSTRAR EN PANTALLA


  71:   


  72:          CALL SCAN


  73:          CALL BORRAR_PAN


  74:   


  75:          LD A,1


  76:          LD IX,LINEA1


  77:          CALL ENVIAR_MEN


  78:   


  79:          LD IY,TABLA1


  80:          CALL BURBUJA


  81:          LD IY,TABLA1


  82:          CALL HEXASC


  83:   


  84:          LD A,2


  85:          LD IX,TASC


  86:          CALL ENVIAR_MEN


  87:   


  88:          LD A,3


  89:          LD IX,LINEA2


  90:          CALL ENVIAR_MEN


  91:   


  92:          LD IY,TABLA2


  93:          CALL BURBUJA


  94:          LD IY,TABLA2


  95:          CALL HEXASC


  96:   


  97:          LD A,4


  98:          LD IX,TASC


  99:          CALL ENVIAR_MEN


 100:   


 101:          CALL SCAN


 102:          CALL BORRAR_PAN


 103:   


 104:          LD A,1


 105:          LD IX,LINEA3


 106:          CALL ENVIAR_MEN


 107:   


 108:          LD IY,TABLA3


 109:          CALL BURBUJA


 110:          LD IY,TABLA3


 111:          CALL HEXASC


 112:   


 113:   


 114:          LD A,2


 115:          LD IX,TASC


 116:          CALL ENVIAR_MEN


 117:   


 118:          LD A,3


 119:          LD IX,LINEA4


 120:          CALL ENVIAR_MEN


 121:   


 122:          LD IY,TABLA4


 123:          CALL BURBUJA


 124:          LD IY,TABLA4


 125:          CALL HEXASC


 126:   


 127:   


 128:          LD A,4


 129:          LD IX,TASC


 130:          CALL ENVIAR_MEN


 131:   


 132:          CALL SCAN


 133:          CALL BORRAR_PAN


 134:   


 135:          LD A,1


 136:          LD IX,LINEA5


 137:          CALL ENVIAR_MEN


 138:   


 139:          LD IY,TABLA5


 140:          CALL BURBUJA


 141:          LD IY,TABLA5


 142:          CALL HEXASC


 143:   


 144:   


 145:          LD A,2


 146:          LD IX,TASC


 147:          CALL ENVIAR_MEN


 148:   


 149:          CALL SCAN


 150:          CALL BORRAR_PAN


 151:          RST 30H


 152:   


 153:   


 154:   


 155:   


 156:  ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1


 157:  ; RUTINA PARA ORDENAR EN FORMA ASCENDENTE USANDO EL METODO DE LA BURBUJA


 158:  ; EN IY DEBE ESTAR CARGADA LA DIRECCION DE LA TABLA A ORDENAR


 159:   


 160:  BURBUJA:


 161:          LD B,49


 162:   


 163:  PRO_POS:    PUSH IY


 164:          POP IX


 165:          LD C,1


 166:   


 167:  BUR_2:        LD A,(IX)


 168:          CP (IX+1)


 169:          CALL NC,BUR_ORD


 170:          INC C


 171:          LD A,C


 172:          CP B


 173:          JP Z,BUR_1


 174:          INc IX


 175:          JP BUR_2 


 176:  BUR1:        DJNZ PRO_POS


 177:          RET


 178:          


 179:  BUR_ORD:    PUSH DE


 180:          LD D,(IX)


 181:          LD E,(IX+1)


 182:          LD (IX),E


 183:          LD (IX+1),D


 184:          POP DE


 185:          RET        


 186:   


 187:   


 188:   


 189:  ; !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


 190:  ; CONVERTIR DE HEXA A ASCII, EN IY DEBE ESTAR LA DIRECCION DE LA TABLA A CONVERTIR


 191:   


 192:  HEXASC:        LD B,50


 193:   


 194:          PUSH IY


 195:          POP IX


 196:          LD HL,TASC


 197:  AA:        LD A,(IX)


 198:          LD E,A


 199:          AND 0F0H


 200:          RRC A


 201:          RRC A


 202:          RRC A


 203:          RRC A


 204:          CP 10


 205:          CALL NC,LETB1


 206:          ADD 30H


 207:          LD (HL),A


 208:          INC HL


 209:          LD A,E


 210:          AND 0FH


 211:          CP 10


 212:          CALL NC,LETB1


 213:          ADD 30H


 214:          LD (HL),A


 215:          INC HL


 216:          LD (HL),20H


 217:          INC HL


 218:          INC IX


 219:          DJNZ AA


 220:          RET


 221:   


 222:  LETB1:        ADD 7


 223:          RET


 224:          


 225:   


 226:   


 227:   


 228:          ORG 2500H


 229:  TABLA1        DS 50


 230:  TABLA2        DS 50


 231:  TABLA3        DS 50


 232:  TABLA4        DS 200


 233:  TABLA5        DS 200


 234:   


 235:  TASC        DS 200,24H


 236:   


 237:   


 238:  LINEA1        DB "    * TABLA1$"


 239:  LINEA2        DB "    * TABLA2$"


 240:  LINEA3        DB "    * TABLA3$"


 241:  LINEA4        DB "    * TABLA4$"


 242:  LINEA5        DB "    * TABLA5$"


 243:  SCAN1        EQU 0508H


 244:  SCAN        EQU 04F1H


 245:  ENVIAR_MEN    EQU 052BH


 246:  BORRAR_PAN    EQU 055CH


 247:          END


No hay comentarios:

Publicar un comentario