Revisar definicion del segmento de datos para conocer la funcionalidad, basicamente era introducir una lista de numeros, los podias ordenar y sacar el promedio de los numeros que escribiste.
1: .MODEL SMALL 2: .STACK 64H 3: .DATA 4: SWITCHE DB 0 5: CONTADOR DW ? 6: TABLA DB 40 DUP (?) 7: TABLAHEX DB 20 DUP (?) 8: TABLAHEX2 DB 20 DUP (?)9: PANTALLA3 DB " EL PROMEDIO DE LOS NUMEROS INTRODUCIDOS ES "
10: PROMEDIO DB 0,0 11: DB 24H 12: TABLAORD DB 80 DUP (?) 13: DB 24H14: LINEA1 DB " ******** INTRODUCE LOS NUMEROS Y PRESIONE ENTER PARA FINALIZAR ******** ",24H
15: PANTALLA1 DB 79 DUP ("="),10,13
16: DB 79 DUP ("="),10,13
17: DB "******** PRACTICA N¦ 2. MANEJO DE INSTRUCCIONES, TECLADO Y PANTALLA ********",10,13
18: DB 10,13 19: DB 10,13,24H20: PANTALLA2 DB " 1. INTRODUCIR NUMEROS",10,13
21: DB " 2. ORDENAR NUMEROS",10,13
22: DB " 3. PROMEDIAR",10,13
23: DB 10,13 24: DB 10,1325: DB " INDIQUE LA OPCION: ",24H
26: 27: 28: 29: 30: .CODE 31: MOV AX,@DATA 32: MOV DS,AX 33: MOV ES,AX34: CALL MODO
35: MOV AL,25 36: MOV CX,037: CALL SCREEN
38: LEA DX,PANTALLA1 39: MOV AH,9 40: INT 21H 41: OPCIONES: MOV DH,7 42: MOV DL,043: CALL CURSOR
44: LEA DX,PANTALLA2 45: MOV AH,9 46: INT 21H 47: MOV AH,0 48: INT 16H49: CMP AL,"1"
50: JE OPCION151: CMP AL,"2"
52: JE OPCION253: CMP AL,"3"
54: JE OPCION3 55: CMP AL,1BH 56: JE SALIR 57: JMP OPCIONES 58: 59: OPCION1: MOV SWITCHE,160: CALL LIMPIAR
61: CALL INTRODUCIR
62: CALL ASC2HEX
63: CALL LIMPIAR
64: JMP OPCIONES 65: 66: OPCION2: CMP SWITCHE,0 67: JE SALTA68: CALL LIMPIAR
69: CALL ORDENAR
70: CALL LIMPIAR
71: SALTA: JMP OPCIONES 72: 73: OPCION3: CMP SWITCHE,0 74: JE SALTA75: CALL LIMPIAR
76: CALL PROMEDIAR
77: CALL LIMPIAR
78: JMP OPCIONES 79: 80: SALIR: CALL MODO
81: .EXIT(0)
82: 83: INTRODUCIR PROC NEAR 84: MOV CONTADOR,0 85: MOV DH,10 86: MOV DL,087: CALL CURSOR
88: LEA DX,LINEA1 89: MOV AH,9 90: INT 21H 91: MOV DH,12 92: MOV DL,093: CALL CURSOR
94: LEA SI,TABLA 95: 96: 97: 98: ; revisar q ahora son 10 99: MOV CX,10 100: LAZO1: MOV AH,0 101: INT 16H 102: CMP AL,13 103: JE SALIR1 104: CMP AL,30H 105: JC LAZO1 106: CMP AL,3AH 107: JNC LAZO1 108: MOV [SI],AL 109: INC SI 110: MOV DL,AL 111: MOV AH,2 112: INT 21H 113: LAZO2: MOV AH,0 114: INT 16H 115: CMP AL,30H 116: JC LAZO2 117: CMP AL,47H 118: JNC LAZO2 119: MOV [SI],AL 120: INC SI 121: MOV DL,AL 122: MOV AH,2 123: INT 21H 124: INC CONTADOR 125: MOV DL,20H 126: MOV AH,2 127: INT 21H128: LOOP LAZO1
129: SALIR1: RETN 130: INTRODUCIR ENDP 131: 132: ASC2HEX PROC NEAR 133: LEA DI,TABLAHEX 134: LEA SI,TABLA 135: MOV CX,CONTADOR 136: LAZO3: MOV BH,[SI] 137: MOV BL,[SI+1] 138: CMP BH,3AH 139: JB NUMERO1140: SUB BH,7
141: NUMERO1: SUB BH,30H
142: ROL BH,4 143: CMP BL,3AH 144: JB NUMERO2145: SUB BL,7
146: NUMERO2: SUB BL,30H
147: OR BH,BL
148: MOV [DI],BH 149: INC DI 150: ADD SI,2151: LOOP LAZO3
152: RETN 153: ASC2HEX ENDP 154: 155: BURBUJA PROC NEAR 156: MOV CX,CONTADOR 157: DEC CX 158: SALTO3: LEA SI,TABLAHEX 159: MOV BL,0 160: SALTO2: MOV AL,[SI] 161: CMP AL,[SI+1] 162: JC SALTO1 163: MOV BH,[SI+1] 164: MOV [SI],BH 165: MOV [SI+1],AL 166: SALTO1: INC SI 167: INC BL 168: CMP BL,CL 169: JNE SALTO2170: LOOP SALTO3
171: RETN 172: BURBUJA ENDP 173: 174: ORDENAR PROC NEAR 175: 176: MOV DH,13 177: MOV DL,0178: CALL CURSOR
179: CALL BURBUJA
180: MOV CX,CONTADOR 181: LEA DI,TABLAORD 182: LEA SI,TABLAHEX 183: LAZO5: MOV AL,[SI]184: CALL HEX2ASC
185: MOV BYTE PTR [DI],BH
186: MOV BYTE PTR [DI+1],BL
187: MOV BYTE PTR [DI+3],20H
188: ADD DI,3 189: INC SI190: LOOP LAZO5
191: LEA SI,TABLAORD 192: MOV CX,CONTADOR 193: LAZO7: MOV DL,[SI] 194: MOV AH,2 195: INT 21H 196: INC SI 197: MOV DL,[SI] 198: MOV AH,2 199: INT 21H 200: INC SI 201: MOV DL,[SI] 202: MOV AH,2 203: INT 21H 204: INC SI 205: LAZO6: MOV AH,0 206: INT 16H 207: CMP AL,13 208: JE SIGUIENTE 209: CMP AL,20H 210: JE TODO 211: JMP LAZO6212: SIGUIENTE: LOOP LAZO7
213: MOV AH,0 214: INT 16H 215: RET 216: TODO: MOV DH,13 217: MOV DL,0218: CALL CURSOR
219: LEA DX,TABLAORD 220: MOV AH,9 221: INT 21H 222: MOV AH,0 223: INT 16H 224: RET 225: ORDENAR ENDP 226: 227: HEX2ASC PROC NEAR 228: MOV BH,AL 229: MOV BL,AL 230: ROL BH,4231: AND BH,0FH
232: CMP BH,0AH 233: JC NUMERO3 234: ADD BH,7 235: NUMERO3: ADD BH,30H236: AND BL,0FH
237: CMP BL,0AH 238: CMP BL,0AH 239: JC NUMERO4 240: ADD BL,7 241: NUMERO4: ADD BL,30H 242: RETN 243: HEX2ASC ENDP 244: 245: PROMEDIAR PROC NEAR246: CALL NUMERO
247: LEA SI,TABLAHEX2 248: MOV CX,CONTADOR 249: MOV AX,0 250: MOV BX,0 251: LAZO4: MOV BL,[SI] 252: ADD AX,BX 253: INC SI254: LOOP LAZO4
255: MOV DX,CONTADOR 256: DIV DL257: CALL NUMEROS
258: CALL HEX2ASC
259: MOV [PROMEDIO],BH 260: MOV [PROMEDIO+1],BL 261: MOV DH,13 262: MOV DL,0263: CALL CURSOR
264: LEA DX,PANTALLA3 265: MOV AH,9 266: INT 21H 267: MOV AH,0 268: INT 16H 269: RETN 270: PROMEDIAR ENDP 271: 272: MODO PROC NEAR 273: MOV AH,0 274: MOV AL,3 275: INT 10H 276: RETN 277: MODO ENDP 278: 279: SCREEN PROC NEAR 280: MOV AH,6 281: MOV BH,17H 282: MOV DX,184FH 283: INT 10H 284: RETN 285: SCREEN ENDP 286: 287: CURSOR PROC NEAR 288: MOV AH,2 289: MOV BH,0 290: INT 10H 291: RETN 292: CURSOR ENDP 293: 294: LIMPIAR PROC NEAR 295: MOV AL,15 296: MOV CH,7 297: MOV CL,0298: CALL SCREEN
299: RETN 300: LIMPIAR ENDP 301: 302: 303: NUMERO PROC NEAR 304: PUSH DX 305: PUSH BX 306: LEA SI,TABLAHEX 307: LEA DI,TABLAHEX2 308: MOV CX,CONTADOR 309: num1: mov al,[si]310: and al,0fh
311: mov dl,al 312: mov al,[si]313: and al,0f0h
314: rol al,4 315: mov dh,al 316: mov bh,0 317: num22: dec dl 318: jnz num2 319: inc bh 320: mov dl,9 321: dec dh 322: cmp dh,0ffh 323: je num23 324: num2: inc bh 325: jmp num22326: num23: mov byte ptr [DI],bh
327: inc di 328: inc si329: loop num1
330: 331: POP BX 332: POP DX 333: RETN 334: NUMERO ENDP 335: 336: NUMEROS PROC NEAR 337: MOV CH,0 338: MOV CL,AL 339: MOV AX,0 340: NUME: INC AL 341: DAA342: LOOP NUME
343: RETN 344: 345: 346: NUMEROS ENDP 347: 348: 349: 350: 351: END
No hay comentarios:
Publicar un comentario