Este codigo es la primera evaluacion que acostumbraba a hacer este profesor, ya esta configurado para pasarle parametros a la aplicacion usando el segmento de PSP
1: .MODEL SMALL 2: .STACK 256 3: .DATA 4: TABLA DB 0,1,15,10,,46H,88H,0AFH,34H,9AH,0ADH 5: DB 91H,78H,0A2H,45H,0FEH,4DH,3DH,5CH,70H,11H 6: BCD DB 20 DUP (?) 7: HEXA DB 20 DUP (?) 8: PROM DB ? 9: TABLA1 DB 20 DUP (?) 10: SWDTA DB ? 11: TABLAAUX DB 48 DUP (255),0,1,2,3,4,5,6,7,8,9,255,255,255,255,255,255,255,10,11,12,13,14,15,0FFH 12: DB 200 DUP (255)13: SIGNOS DB ".,;:"
14: TABLA2 DB 20 DUP (?) 15: 16: .CODE 17: PUSH ES 18: MOV AX,@DATA 19: MOV DS,AX 20: POP ES 21: MOV DI,80H 22: MOV AL,ES:[DI] 23: CMP AL,0 24: JE SALIR1 25: MOV AH,AL 26: INC DI 27: DEC AH 28: 29: NEXT: INC DI
30: DEC AH 31: MOV AL,ES:[DI]32: CMP AL,"-"
33: JE BUSCAOP 34: VERIF1: CMP AH,00H 35: JE SALIR36: JMP NEXT
37: 38: BUSCAOP: INC DI 39: DEC AH 40: MOV AL,ES:[DI]41: CMP AL,"b"
42: JE BCD143: CMP AL,"h"
44: JE HEXA145: CMP AL,"x"
46: JE CONVER 47: CMP AH,00H 48: JE SALIR 49: MOV SWDTA,0FFH50: CMP AL,"-"
51: JE BUSCAOP52: JMP NEXT
53: 54: BCD1: CALL UNO
55: JMP NEXT
56: HEXA1: CALL DOS
57: JMP NEXT
58: CONVER: CALL SEIS
59: JMP NEXT
60: 61: SALIR1: CALL UNO
62: CALL DOS
63: CALL TRES
64: CALL CUATRO
65: CALL CINCO
66: SALIR: .EXIT(0)
67: 68: UNO PROC NEAR 69: PUSH DI 70: PUSH AX 71: LEA SI,TABLA 72: LEA DI,BCD 73: MOV CX,2074: LAZO1: MOV AL,BYTE PTR [SI]
75: AND AL,0F0H
76: CMP AL,0A0H 77: JNC SIGUIENTE78: MOV AL,BYTE PTR [SI]
79: AND AL,0FH
80: CMP AL,0AH 81: JNC SIGUIENTE82: MOV AL,BYTE PTR [SI]
83: MOV BYTE PTR [DI],AL
84: INC DI 85: SIGUIENTE: INC SI86: LOOP LAZO1
87: POP AX 88: POP DI 89: RETN 90: UNO ENDP 91: 92: DOS PROC NEAR 93: PUSH DI 94: PUSH AX 95: LEA SI,TABLA 96: LEA DI,HEXA 97: MOV CX,4098: LAZO2: MOV AL,BYTE PTR [SI]
99: AND AL,0F0H
100: CMP AL,0A0H 101: JC SIGUIENTE2102: MOV AL,BYTE PTR [SI]
103: AND AL,0FH
104: CMP AL,0AH 105: JC SIGUIENTE2106: MOV AL,BYTE PTR [SI]
107: MOV BYTE PTR [DI],AL
108: INC DI 109: SIGUIENTE2: INC SI110: LOOP LAZO2
111: POP AX 112: POP DI 113: RETN 114: DOS ENDP 115: 116: TRES PROC NEAR 117: LEA SI,TABLA 118: MOV AX,0 119: MOV CX,20 120: MOV DX,0121: LAZO3: MOV AL,BYTE PTR [SI]
122: CMP AL,30H 123: JC SIGUIENTE3 124: CMP AL,3AH 125: JNC SIGUIENTE3126: AND AL,0FH
127: ADD PROM,AL 128: INC DL 129: SIGUIENTE3: INC SI130: LOOP LAZO3
131: MOV AH,0 132: MOV AL,PROM 133: DIV DL134: OR AL,30H
135: MOV PROM,AL 136: RETN 137: TRES ENDP 138: 139: CUATRO PROC NEAR 140: PUSH ES 141: PUSH DS 142: POP ES 143: MOV DX,4 144: LEA SI,SIGNOS 145: XX5: LEA DI,TABLA 146: MOV CX,20 147: XX4: MOV AL,[SI] 148: SCASB 149: JNZ XXX150: MOV BYTE PTR [DI-1],20H
151: XXX: LOOP XX4
152: INC SI 153: DEC DX 154: CMP DX,0 155: JNZ XX5 156: POP ES 157: RETN 158: CUATRO ENDP 159: 160: CINCO PROC NEAR 161: LEA SI,TABLA 162: LEA BX,TABLAAUX 163: LEA DI,TABLA1 164: MOV CX,20165: LAZO5: MOV AL, BYTE PTR [SI]
166: XLAT 167: CMP AL,0FFH168: JE ERROR
169: MOV BYTE PTR [DI],AL
170: INC DI 171: SIGUIENTE5: INC SI172: LOOP LAZO5
173: RETN174: ERROR: MOV SWDTA,AL
175: JMP SIGUIENTE5 176: CINCO ENDP 177: 178: SEIS PROC NEAR 179: LEA SI,TABLA1 180: LEA BX,TABLAAUX 181: SALTO61: INC DI 182: INC DI 183: DEC AH 184: DEC AH 185: MOV DH,ES:[DI] 186: INC DI 187: DEC AH 188: MOV DL,ES:[DI] 189: INC DI 190: DEC AH191: AND DH,0FH
192: AND DL,0FH
193: ROL DH,4194: OR DH,DL
195: MOV AL,DH 196: XLAT 197: CMP AL,255 198: JE SIGUIENTE6199: MOV BYTE PTR [SI],AL
200: INC SI 201: SIGUIENTE6: MOV AL,ES:[DI]202: CMP AL,","
203: JNE SALTO6 204: JMP SALTO61 205: 206: SALTO6: RETN 207: SEIS ENDP 208: END
merda!! Si eres ladillado amor... jejejeje (K)
ResponderEliminar