Este programa era un tabule, el siempre lo mandaba, le modificaba una mariquera al enunciado pero basicamente siempre era el mismo.
Esta codificado para el sistema de desarrollo que esta(ba)? en el laboratorio de la universidad.
1: ORG 2000H
2: LD SP,3DFFH
3: INICIO: CALL BORRAR_PAN
4: LD E,0
5: LD HL,DATOS
6: E2: CALL SCAN
7: CP "X"
8: JP Z,E4
9: CP "x"
10: JP Z,E4
11: CP 30H
12: JP C,E2
13: CP 47H
14: JP NC,E2
15: LD (HL),A
16: INC HL
17: LD (HL),24H
18: LD IX,DATOS
19: LD A,4
20: CALL ENVIAR_MEN
21: E3: CALL SCAN
22: CP 30H
23: JP C,E3
24: CP 47H
25: JP NC,E3
26: LD (HL),A
27: INC HL
28: LD (HL),24H
29: LD IX,DATOS
30: LD A,4
31: CALL ENVIAR_MEN
32: INC E
33: LD A,E
34: CP 30
35: JP NZ,E2
36: E4: CALL BORRAR_PAN
37: LD A,1
38: LD IX,LINEA1
39: CALL ENVIAR_MEN
40: LD A,2
41: LD IX,LINEA2
42: CALL ENVIAR_MEN
43: LD A,3
44: LD IX,LINEA3
45: CALL ENVIAR_MEN
46: LD A,4
47: LD IX,LINEA4
48: CALL ENVIAR_MEN
49: CALL SCAN
50: CP 20H
51: JP NZ,E4
52: LD HL,DATOS
53: LD B,E
54: LD IX,NUMHEX
55: AQUI: LD A,(HL)
56: CP 3AH
57: CALL NC,LETRA
58: SUB 30H
59: RLCA
60: RLCA
61: RLCA
62: RLCA
63: LD D,A
64: INC HL
65: LD A,(HL)
66: CP 3AH
67: CALL NC,LETRA
68: SUB 30H
69: OR D
70: LD (IX),A
71: INC IX
72: INC HL
73: DJNZ AQUI
74: JP ORDENAR
75: LETRA: SUB 7
76: RET
77: ORDENAR: LD HL,NUMHEX
78: LD IX,T1
79: LD B,E
80: LD C,0FEH
81: AQUI2: LD A,(HL)
82: CP C
83: CALL Z,MOVER
84: INC HL
85: DJNZ AQUI2
86: LD HL,NUMHEX
87: LD B,E
88: LD A,C
89: SUB 2
90: LD C,A
91: JP NC,AQUI2
92: LD HL,NUMHEX
93: LD B,E
94: LD C,1
95: AQUI3: LD A,(HL)
96: CP C
97: CALL Z,MOVER
98: INC HL
99: DJNZ AQUI3
100: LD HL,NUMHEX
101: LD B,E
102: LD A,C
103: ADD 2
104: LD C,A
105: JP NC,AQUI3
106: JP TRANSF
107: MOVER: PUSH DE
108: CALL HEXASC1
109: LD (IX),D
110: LD (IX+1),E
111: LD (IX+2),24H
112: INC IX
113: INC IX
114: POP DE
115: RET
116: TRANSF: LD IY,NUMHEX
117: LD IX,T2
118: LD B,E
119: AQUI7: LD DE,3030H
120: LD H,30H
121: LD C,(IY)
122: LD A,C
123: AND 1
124: CP 0
125: JP NZ,IMPAR
126: LD A,0
127: CP C
128: JP Z,AQUI5
129: AQUI4: INC E
130: LD A,E
131: CP 3AH
132: JP C,AQUI6
133: LD E,30H
134: INC D
135: LD A,D
136: CP 3AH
137: JP C,AQUI6
138: LD D,30H
139: INC H
140: AQUI6: DEC C
141: JP NZ,AQUI4
142: AQUI5: LD (IX),H
143: INC IX
144: LD (IX),D
145: INC IX
146: LD (IX),E
147: INC IX
148: IMPAR: INC IY
149: DJNZ AQUI7
150: JP MULTI
151: MULTI: LD IX,T2
152: LD IY,T3
153: LD B,20
154: AQUI9: LD C,4
155: LD (IY),30H
156: LD (IY+1),30H
157: LD (IY+2),30H
158: LD (IY+3),30H
159: AQUI8: LD A,(IX+2)
160: ADD (IY+3)
161: SUB 30H
162: CP 3AH
163: CALL NC,AJUSTAR1
164: LD (IY+3),A
165: LD A,(IX+1)
166: ADD (IY+2)
167: SUB 30H
168: CP 3AH
169: CALL NC,AJUSTAR2
170: LD (IY+2),A
171: LD A,(IX)
172: ADD (IY+1)
173: SUB 30H
174: CP 3AH
175: CALL NC,AJUSTAR3
176: LD (IY+1),A
177: AQUI10: DEC C
178: JP NZ,AQUI8
179: INC IX
180: INC IX
181: INC IX
182: INC IY
183: INC IY
184: INC IY
185: INC IY
186: DJNZ AQUI9
187: E1: CALL SCAN
188: CP 1BH
189: JP NZ,E1
190: LD HL,BLANK
191: PUSH HL
192: LD IX,MENSAJE
193: LOOP: EX (SP),IX
194: LD A,4
195: PUSH IX
196: CALL ENVIAR_MEN
197: POP IX
198: LD B,50
199: HELFSEG: CALL SCAN1
200: CP "S"
201: JP Z,ENDING
202: CP "N"
203: JP Z,INICIO
204: DJNZ HELFSEG
205: JR LOOP
206: ENDING: RST 30H
207: AJUSTAR1: SUB 10
208: INC (IY+2)
209: RET
210: AJUSTAR2: SUB 10
211: INC (IY+1)
212: RET
213: AJUSTAR3: SUB 10
214: INC (IY)
215: RET
216: HEXASC1: LD A,C
217: AND 0F0H
218: RLCA
219: RLCA
220: RLCA
221: RLCA
222: CP 0AH
223: JP C,HM1
224: ADD 7
225: HM1: ADD 30H
226: LD D,A
227: LD A,C
228: AND 0FH
229: CP 0AH
230: JP C,HM2
231: ADD 7
232: HM2: ADD 30H
233: LD E,A
234: RET
235:
236:
237: ORG 3000H
238: DATOS DS 70
239: NUMHEX DS 30
240: T1 DS 70
241: T2 DS 100
242: T3 DS 150
243: ESPACIO DB 0,0
244: MENSAJE DB " DESEA SALIR? PULSE S o N $"
245: BLANK DB " $"
246: LINEA1 DB " @ ORDENAR$"
247: LINEA2 DB " @ BCD - HEXADECIMAL$"
248: LINEA3 DB " @ MULTIPLICACION$"
249: LINEA4 DB " PRESIONE ENTER PARA CONTINUAR$"
250: SCAN1 EQU 0508H
251: SCAN EQU 04F1H
252: ENVIAR_MEN EQU 052BH
253: BORRAR_PAN EQU 055CH
254:
255: END
No hay comentarios:
Publicar un comentario