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,3DFFH3: 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,LINEA177: CALL ENVIAR_MEN
78: 79: LD IY,TABLA180: CALL BURBUJA
81: LD IY,TABLA182: CALL HEXASC
83: 84: LD A,2 85: LD IX,TASC86: CALL ENVIAR_MEN
87: 88: LD A,3 89: LD IX,LINEA290: CALL ENVIAR_MEN
91: 92: LD IY,TABLA293: CALL BURBUJA
94: LD IY,TABLA295: CALL HEXASC
96: 97: LD A,4 98: LD IX,TASC99: CALL ENVIAR_MEN
100: 101: CALL SCAN
102: CALL BORRAR_PAN
103: 104: LD A,1 105: LD IX,LINEA3106: CALL ENVIAR_MEN
107: 108: LD IY,TABLA3109: CALL BURBUJA
110: LD IY,TABLA3111: CALL HEXASC
112: 113: 114: LD A,2 115: LD IX,TASC116: CALL ENVIAR_MEN
117: 118: LD A,3 119: LD IX,LINEA4120: CALL ENVIAR_MEN
121: 122: LD IY,TABLA4123: CALL BURBUJA
124: LD IY,TABLA4125: CALL HEXASC
126: 127: 128: LD A,4 129: LD IX,TASC130: CALL ENVIAR_MEN
131: 132: CALL SCAN
133: CALL BORRAR_PAN
134: 135: LD A,1 136: LD IX,LINEA5137: CALL ENVIAR_MEN
138: 139: LD IY,TABLA5140: CALL BURBUJA
141: LD IY,TABLA5142: CALL HEXASC
143: 144: 145: LD A,2 146: LD IX,TASC147: 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,A199: AND 0F0H
200: RRC A 201: RRC A 202: RRC A 203: RRC A 204: CP 10205: CALL NC,LETB1
206: ADD 30H 207: LD (HL),A 208: INC HL 209: LD A,E210: AND 0FH
211: CP 10212: 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