;Operadores Unarios de 16 bits.

;Esta macro borra un registro.
clrdf		macro	fileH, fileL
	clrf	fileH
	clrf	fileL
		endm

;Esta macro incrementa un registro.
incdf		macro	fileH, fileL
	incf	fileL, F
	movf	fileL, W
	xorlw	B'00000000'
	btfsc	STATUS, Z
	incf	fileH, F
		endm	

;Operadores Relacionales de 16 bits
;entre un registro y un literal.

;Esta macro compara un registro con un literal,
;salta si [file16] <> lit16.
dFdistintodL	macro	fileH, fileL, litH, litL, jump_to
;Si fileH <> litH, ir a jump_to
	FdistintoL fileH, litH, jump_to
;Sino, Si fileL <> litL, ir a jump_to
	FdistintoL fileL, litL, jump_to
		endm

;Esta macro compara un registro con un literal,
;salta si [file16] = lit16.
dFigualdL	macro	fileH, fileL, litH, litL, jump_to
	LOCAL	salida		;Define etiqueta local.
;Si fileH <> litH, ir a salida
	FdistintoL fileH, litH, salida
;Sino, Si fileL = litL, ir a jump_to
	FigualL fileL, litL, jump_to
salida	nop
		endm

;Esta macro compara un registro con un literal,
;salta si [file16] >= lit16.
dFmayor_idL	macro	fileH, fileL, litH, litL, jump_to
	LOCAL	salida		;Define etiqueta local.
;Si fileH < litH, ir a salida
	FmenorL	fileH, litH, salida
;Sino, Si fileL >= litL ir a jump_to
	Fmayor_iL fileL, litL, jump_to
salida	nop
		endm

;Esta macro compara un registro con un literal,
;salta si [file16] > lit16.
dFmayordL	macro	fileH, fileL, litH, litL, jump_to
	LOCAL	salida		;Define etiqueta local.
;Si fileH > litH, ir a jump_to
	FmayorL fileH, litH, jump_to
;Sino, Si fileH < litH, ir a salida
	FmenorL fileH, litH, salida
;Sino, Si fileL > litL, ir a jump_to
	FmayorL fileL, litL, jump_to
salida	nop
		endm

;Esta macro compara un registro con un literal,
;salta si [file16] <= lit16.
dFmenor_idL	macro	fileH, fileL, litH, litL, jump_to
	LOCAL 	salida		;Define etiqueta local.
;Si fileH > litH, ir a salida
	FmayorL fileH, litH, salida
;Sino, Si fileL >= litL, ir jump_to
	Fmayor_iL fileH, litH, jump_to
salida	nop
		endm


;Esta macro compara un registro con un literal,
;salta si [file16] < lit16.
dFmenordL	macro	fileH, fileL, litH, litL, jump_to
	LOCAL 	salida		;Define etiqueta local.
;Si fileH < litH, ir a jump_to
	FmenorL fileH, litH, jump_to
;Sino, Si fileH > litH, ir a salida
	FmayorL fileH, litH, salida
;Sino, Si fileL < litL, ir a jump_to
	FmenorL fileL, litL, jump_to
salida	nop
		endm
			 	
