;****************************************************************
;    Nombre:													*
;			    macros.inc                                      *
;    Descripcion:												*
;				Estas son unas pequeñas macros, para ayudarnos  *
;    ha optimizar nuestro código basandonos en instrucciones    *
;    parecidas a las que se trabajaban en uPo 80x86				*
;****************************************************************

;**************************************************************
; mov regitro,constante
; Mueve constante al registro
mov	macro	registro,constante
	movlw	constante
	movwf	registro
	endm

;**************************************************************
; movr registro,registro
; copia el contenido de registro2 en registro 1
; en 80x86 se usaba tambien mov
movr	macro	registro1,registro2
	movf	registro2,0
	movwf	registro1
	endm

;*************************************************	
;jmp Salta a Direccion
jmp	MACRO	Direccion
	goto	Direccion
	endm

;*************************************************
;Saltar si es 0
jz	MACRO	Direccion
	btfsc	STATUS,Z
	goto	Direccion	
	endm

;*************************************************
;Saltar si no es 0
jnz	MACRO	Direccion
	btfss	STATUS,Z
	goto	Direccion
	endm

;*************************************************
;Saltar si acarreo es 1
jc	MACRO	Direccion
	btfsc	STATUS,C
	goto	Direccion
	endm

;*************************************************
;Saltar si acarreo es 0
jnc	MACRO	Direccion
	btfss	STATUS,C
	goto	Direccion
	endm

;*************************************************
;compara: Nos permite comparar una constante con
; un registro
compara	macro	reg1, constante
	movlw	constante
	xorwf	reg1,W
	endm

