-
Notifications
You must be signed in to change notification settings - Fork 0
/
maximo.asm
106 lines (99 loc) · 1.25 KB
/
maximo.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
.module maximo
pantalla .equ 0xFF00
teclado .equ 0xFF02
m .equ 0xE000
.globl maximo
.globl imprimir_num
.globl imprime_cadena
filaobj: .byte 0
columnas: .byte 0
inicio: .byte 0
filamenos1: .byte 0
c: .byte 0
comp : .byte 0
maximos: .asciz "\n Maximos: "
cadenapos: .asciz "\nFila-Columna-> "
posic: .byte 0
posif: .byte 0 ; = filaobj
maximo:
ldy #m
sta columnas
stb filaobj
stb posif
subb #1
stb filamenos1
ldx #maximos
jsr imprime_cadena
;columnas x 2 x (filaobj-1)
ldb columnas
lslb
clra
lda filamenos1
mul
std inicio
leay d,y
clra clrb
ldd ,y
std maximo
buclefila:
ldd ,y++
std comp
ldb c
cmpb columnas
beq fin_fila
addb #1
stb c
ldd maximo
cmpd comp
blo cambiarmaximo
bra buclefila
cambiarmaximo:
ldd comp
std maximo
ldb c
subb #1
stb posic
bra buclefila
fin_fila:
ldb #0
stb c
clra clrb
ldd maximo
jsr imprimir_num
;;;; comprobar a partir de aqui
masmaximos:
ldy #m
ldd inicio
leay d,y
clra clrb
bfila:
ldb c
cmpb columnas
beq fin
ldd ,y++
std comp
ldd maximo
cmpd comp
beq imppos
sig:
ldb c
addb #1
stb c
bra bfila
imppos:
ldx #cadenapos
jsr imprime_cadena
clra clrb
ldb posif
jsr imprimir_num
clra clrb
ldb c
addb #1
stb c
jsr imprimir_num
ldb c
subb #1
stb c
bra sig
fin:
rts