; 
; 	*= 0x100
; 
; @mcd:
; 	psh bp
 0x0100 0x52
; 	lbp sp
 0x0101 0x71
; 	@a_mcd= -6
; 	@b_mcd= -8
; 	@x_mcd= -10
; 	@y_mcd= -12
; 
; 	lda [bp + @b_mcd]
 0x0102 0x45
 0x0103 0xf8
 0x0104 0xff
; 	tst
 0x0105 0x24
; 	jne @1
 0x0106 0x31
 0x0107 0x1a
 0x0108 0x01
; 		lda #1
 0x0109 0x42
 0x010a 0x01
 0x010b 0x00
; 		lea [bp+@x_mcd]
 0x010c 0x82
 0x010d 0xf6
 0x010e 0xff
; 		sta [b]			; *x= 1
 0x010f 0x4c
; 		lda #0
 0x0110 0x42
 0x0111 0x00
 0x0112 0x00
; 		lea [bp+@y_mcd]
 0x0113 0x82
 0x0114 0xf4
 0x0115 0xff
; 		sta [b]			; *y= 0
 0x0116 0x4c
; 	jmp @2
 0x0117 0x38
 0x0118 0x58
 0x0119 0x01
; @1:
; 		psh 4			; int xp, yp
 0x011a 0x53
 0x011b 0x04
 0x011c 0x00
; 		@xp_mcd= 0
; 		@yp_mcd= 2
; 
; 		lea bp+@yp_mcd
 0x011d 0x81
 0x011e 0x02
 0x011f 0x00
; 		psh b			; ^ &yp
 0x0120 0x51
; 
; 		lea bp+@xp_mcd
 0x0121 0x81
 0x0122 0x00
 0x0123 0x00
; 		psh b			; ^ &xp
 0x0124 0x51
; 
; 		lda [bp+@a_mcd]	
 0x0125 0x45
 0x0126 0xfa
 0x0127 0xff
; 		psh a			
 0x0128 0x50
; 		lda [bp+@b_mcd]	
 0x0129 0x45
 0x012a 0xf8
 0x012b 0xff
; 		mod				
 0x012c 0x14
; 		psh a			; ^ a%b
 0x012d 0x50
; 
; 		lda [bp+@b_mcd]	
 0x012e 0x45
 0x012f 0xf8
 0x0130 0xff
; 		psh a			; ^ b
 0x0131 0x50
; 
; 		jsr @mcd		;  mcd(b, a%b, &xp, &yp)
 0x0132 0x3a
 0x0133 0x00
 0x0134 0x01
; 		pop 8
 0x0135 0x63
 0x0136 0x08
 0x0137 0x00
; 
; 		lda [bp+@yp_mcd]
 0x0138 0x45
 0x0139 0x02
 0x013a 0x00
; 		lea [bp+@x_mcd]
 0x013b 0x82
 0x013c 0xf6
 0x013d 0xff
; 		sta [b]				; *x= yp
 0x013e 0x4c
; 
; 		lda [bp+@xp_mcd]
 0x013f 0x45
 0x0140 0x00
 0x0141 0x00
; 		psh a
 0x0142 0x50
; 		lda [bp+@yp_mcd]
 0x0143 0x45
 0x0144 0x02
 0x0145 0x00
; 		psh a
 0x0146 0x50
; 		lda [bp+@a_mcd]
 0x0147 0x45
 0x0148 0xfa
 0x0149 0xff
; 		psh a
 0x014a 0x50
; 		lda [bp+@b_mcd]
 0x014b 0x45
 0x014c 0xf8
 0x014d 0xff
; 		div
 0x014e 0x13
; 		mul
 0x014f 0x12
; 		sub
 0x0150 0x11
; 		lea [bp+@y_mcd]
 0x0151 0x82
 0x0152 0xf4
 0x0153 0xff
; 		sta [b]			; *y= xp - yp (a/b)
 0x0154 0x4c
; 		pop 4			; destruimos xp, yp
 0x0155 0x63
 0x0156 0x04
 0x0157 0x00
; @2:
; 	lsp bp
 0x0158 0x79
; 	pop bp
 0x0159 0x62
; 	rtn
 0x015a 0x3c
; 
; @ep:
; 	psh bp
 0x015b 0x52
; 	lbp sp
 0x015c 0x71
; 	@p=-6
; 	@q=-8
; 	lda #'('
 0x015d 0x42
 0x015e 0x28
 0x015f 0x00
; 	irq pr_chr
 0x0160 0x3d
 0x0161 0x05
 0x0162 0x00
; 	lda [bp+@p]
 0x0163 0x45
 0x0164 0xfa
 0x0165 0xff
; 	irq pr_int
 0x0166 0x3d
 0x0167 0x01
 0x0168 0x00
; 	lda #')'
 0x0169 0x42
 0x016a 0x29
 0x016b 0x00
; 	irq pr_chr
 0x016c 0x3d
 0x016d 0x05
 0x016e 0x00
; 	lda [bp+@q]
 0x016f 0x45
 0x0170 0xf8
 0x0171 0xff
; 	irq pr_chr
 0x0172 0x3d
 0x0173 0x05
 0x0174 0x00
; 	lsp bp
 0x0175 0x79
; 	pop bp
 0x0176 0x62
; 	rtn
 0x0177 0x3c
; 
; @str: byte "Dar dos enteros positivos:\n"
 0x0178 0x44
 0x0179 0x61
 0x017a 0x72
 0x017b 0x20
 0x017c 0x64
 0x017d 0x6f
 0x017e 0x73
 0x017f 0x20
 0x0180 0x65
 0x0181 0x6e
 0x0182 0x74
 0x0183 0x65
 0x0184 0x72
 0x0185 0x6f
 0x0186 0x73
 0x0187 0x20
 0x0188 0x70
 0x0189 0x6f
 0x018a 0x73
 0x018b 0x69
 0x018c 0x74
 0x018d 0x69
 0x018e 0x76
 0x018f 0x6f
 0x0190 0x73
 0x0191 0x3a
 0x0192 0x0a
 0x0193 0x00
; @main:
; 	psh bp
 0x0194 0x52
; 	lbp sp
 0x0195 0x71
; 
; 	psh 8
 0x0196 0x53
 0x0197 0x08
 0x0198 0x00
; 	@a= 0
; 	@b= 2
; 	@x= 4
; 	@y= 6			;  int a, b, x y
; 
; 	lea @str
 0x0199 0x80
 0x019a 0x78
 0x019b 0x01
; 	irq pr_str 
 0x019c 0x3d
 0x019d 0x02
 0x019e 0x00
; 
; 	irq rd_int		;  read(a)
 0x019f 0x3d
 0x01a0 0x03
 0x01a1 0x00
; 	sta [bp+@a]	
 0x01a2 0x4d
 0x01a3 0x00
 0x01a4 0x00
; 
; 	irq rd_int		;  read(b)
 0x01a5 0x3d
 0x01a6 0x03
 0x01a7 0x00
; 	sta [bp+@b]
 0x01a8 0x4d
 0x01a9 0x02
 0x01aa 0x00
; 
; 	lea bp+@y
 0x01ab 0x81
 0x01ac 0x06
 0x01ad 0x00
; 	psh b			; ^ &y
 0x01ae 0x51
; 	lea bp+@x
 0x01af 0x81
 0x01b0 0x04
 0x01b1 0x00
; 	psh b			; ^ &y
 0x01b2 0x51
; 	lda [bp+@b]
 0x01b3 0x45
 0x01b4 0x02
 0x01b5 0x00
; 	psh a			; ^ b
 0x01b6 0x50
; 	lda [bp+@a]
 0x01b7 0x45
 0x01b8 0x00
 0x01b9 0x00
; 	psh a			; ^ a
 0x01ba 0x50
; 
; 	jsr @mcd		; mcd(a,b,&x,&y)
 0x01bb 0x3a
 0x01bc 0x00
 0x01bd 0x01
; 	pop 8			; 		4 parametros fuera de la pila
 0x01be 0x63
 0x01bf 0x08
 0x01c0 0x00
; 
; 	lda #'*'
 0x01c1 0x42
 0x01c2 0x2a
 0x01c3 0x00
; 	psh a
 0x01c4 0x50
; 	lda [bp + @x]	; (x)*
 0x01c5 0x45
 0x01c6 0x04
 0x01c7 0x00
; 	psh a
 0x01c8 0x50
; 	jsr @ep
 0x01c9 0x3a
 0x01ca 0x5b
 0x01cb 0x01
; 	pop 4
 0x01cc 0x63
 0x01cd 0x04
 0x01ce 0x00
; 
; 	lda #'+'
 0x01cf 0x42
 0x01d0 0x2b
 0x01d1 0x00
; 	psh a
 0x01d2 0x50
; 	lda [bp + @a]	; (a)+
 0x01d3 0x45
 0x01d4 0x00
 0x01d5 0x00
; 	psh a
 0x01d6 0x50
; 	jsr @ep
 0x01d7 0x3a
 0x01d8 0x5b
 0x01d9 0x01
; 	pop 4
 0x01da 0x63
 0x01db 0x04
 0x01dc 0x00
; 
; 	lda #'*'
 0x01dd 0x42
 0x01de 0x2a
 0x01df 0x00
; 	psh a
 0x01e0 0x50
; 	lda [bp + @y]	; (y)*
 0x01e1 0x45
 0x01e2 0x06
 0x01e3 0x00
; 	psh a
 0x01e4 0x50
; 	jsr @ep
 0x01e5 0x3a
 0x01e6 0x5b
 0x01e7 0x01
; 	pop 4
 0x01e8 0x63
 0x01e9 0x04
 0x01ea 0x00
; 
; 	lda #'='
 0x01eb 0x42
 0x01ec 0x3d
 0x01ed 0x00
; 	psh a
 0x01ee 0x50
; 	lda [bp + @b]	; (b)=
 0x01ef 0x45
 0x01f0 0x02
 0x01f1 0x00
; 	psh a
 0x01f2 0x50
; 	jsr @ep
 0x01f3 0x3a
 0x01f4 0x5b
 0x01f5 0x01
; 	pop 4
 0x01f6 0x63
 0x01f7 0x04
 0x01f8 0x00
; 
; 	lda [bp + @x] 
 0x01f9 0x45
 0x01fa 0x04
 0x01fb 0x00
; 	psh a
 0x01fc 0x50
; 	lda [bp + @a]
 0x01fd 0x45
 0x01fe 0x00
 0x01ff 0x00
; 	mul
 0x0200 0x12
; 	psh a
 0x0201 0x50
; 
; 	lda [bp + @y]
 0x0202 0x45
 0x0203 0x06
 0x0204 0x00
; 	psh a
 0x0205 0x50
; 	lda [bp + @b]
 0x0206 0x45
 0x0207 0x02
 0x0208 0x00
; 	mul
 0x0209 0x12
; 	add
 0x020a 0x10
; 	irq pr_int		; print(xa+yb)
 0x020b 0x3d
 0x020c 0x01
 0x020d 0x00
; 	lda #'\n'
 0x020e 0x42
 0x020f 0x0a
 0x0210 0x00
; 	irq pr_chr
 0x0211 0x3d
 0x0212 0x05
 0x0213 0x00
; 
; 	lsp bp
 0x0214 0x79
; 	pop bp
 0x0215 0x62
; 	rtn
 0x0216 0x3c
; 
; @stk:
; 	end @main, @stk
< 0x0194 0x0217
; 
