-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.asm
93 lines (80 loc) · 1.39 KB
/
main.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
.module main
.globl imprime_cadena
.globl leer_dim
.globl carga_mat
.globl leer_num
.globl imprimir_num
.globl imp_mat
.globl marco
.globl maximo
;Constantes
fin .equ 0xFF01
pantalla .equ 0xFF00
teclado .equ 0xFF02
pilaS .equ 0xFF00
m .equ 0xE000
;variables
columnas: .byte 0
filas: .byte 0
filmax: .byte 0
elementos: .word 0
imp_dim:
.asciz "Introduce filas x columnas\n"
fil:
.asciz "Introduce filas:"
col:
.asciz "\nIntroduce columnas:"
imp_intmat:
.asciz "\nIntroduce elementos a la matriz"
imp_cargamat:
.asciz "\nMatriz cargada\n"
imp_marco:
.asciz "\nComprobar si es marco la matriz\n"
imp_max:
.asciz "\nIntroduce fila para saber su maximo:"
programa:
;cargamos las pilas en direcciones seguras
lds #pilaS
;leer_dim
ldx #imp_dim
jsr imprime_cadena
;filas
ldx #fil
jsr imprime_cadena
jsr leer_dim
stb filas
;columnas
ldx #col
jsr imprime_cadena
jsr leer_dim
stb columnas
;cargar_matriz
lda filas
ldb columnas
mul
std elementos
ldx #imp_intmat
jsr imprime_cadena
jsr carga_mat
ldx #imp_cargamat
jsr imprime_cadena
lda filas
ldb columnas
jsr imp_mat
ldx #imp_marco
jsr imprime_cadena
lda filas
ldb columnas
jsr marco
ldx #imp_max
jsr imprime_cadena
jsr leer_dim
stb filmax
lda columnas
jsr maximo
acabar:
clra
sta fin
.area FIJA(ABS)
.org 0xFFFE ;vector de RESET
.word programa