⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 branch.inc

📁 keilc关于LM75A温度计的使用例程
💻 INC
字号:
;*************************************************************************
;实用的8051单片机分支判断程序
;直接对应于C语言中的条件判断语句(相反条件)
;适用于Keil C51编译器
;*************************************************************************


;*************************************************************************
;宏定义:BEQ_B(Branch if Equal)
;功能:两个位变量比较,如果相等则跳转
;参数:
;	b1,b2:要比较的两个位变量(或者位变量与位常量比较)
;	Label:跳转目标
;*************************************************************************
BEQ_B	MACRO	b1, b2, Label
LOCAL	next
	MOV	C, b2
	JNB	b1, next
	CPL	C
next:
	JNC	Label
	ENDM


;*************************************************************************
;宏定义:BNE_B(Branch if Not Equal)
;功能:两个位变量比较,如果不相等则跳转
;参数:
;	b1,b2:要比较的两个位变量(或者位变量与位常量比较)
;	Label:跳转目标
;*************************************************************************
BNE_B	MACRO	b1, b2, Label
LOCAL	next
	MOV	C, b2
	JNB	b1, next
	CPL	C
next:
	JC	Label
	ENDM


;*************************************************************************
;宏定义:BEQ(Branch if Equal)
;功能:单字节数比较,如果相等则跳转
;参数:
;	x,y:要比较的两个数
;	Label:跳转目标
;*************************************************************************
BEQ	MACRO	x, y, Label
	MOV	A, x
	XRL	A, y
	JZ	Label
	ENDM


;*************************************************************************
;宏定义:BNE(Branch if Not Equal)
;功能:单字节数比较,如果不相等则跳转
;参数:
;	x,y:要比较的两个数
;	Label:跳转目标
;*************************************************************************
BNE	MACRO	x, y, Label
	MOV	A, x
	CJNE	A, y, Label
	ENDM


;*************************************************************************
;宏定义:BHS(Branch if High or Same)
;功能:单字节无符号数比较,如果大于或等于则跳转
;参数:
;	x,y:要比较的两个数
;	Label:跳转目标
;*************************************************************************
BHS	MACRO	x, y, Label
	MOV	A, x
	CLR	C
	SUBB	A, y
	JNC	Label
	ENDM


;*************************************************************************
;宏定义:BHI(Branch if High)
;功能:单字节无符号数比较,如果大于则跳转
;参数:
;	x,y:要比较的两个数
;	Label:跳转目标
;*************************************************************************
BHI	MACRO	x, y, Label
	MOV	A, x
	SETB	C
	SUBB	A, y
	JNC	Label
	ENDM


;*************************************************************************
;宏定义:BLS(Branch if Low or Same)
;功能:单字节无符号数比较,如果小于或等于则跳转
;参数:
;	x,y:要比较的两个数
;	Label:跳转目标
;*************************************************************************
BLS	MACRO	x, y, Label
	MOV	A, x
	SETB	C
	SUBB	A, y
	JC	Label
	ENDM


;*************************************************************************
;宏定义:BLO(Branch if Low)
;功能:单字节无符号数比较,如果小于则跳转
;参数:
;	x,y:要比较的两个数
;	Label:跳转目标
;*************************************************************************
BLO	MACRO	x, y, Label
	MOV	A, x
	CLR	C
	SUBB	A, y
	JC	Label
	ENDM


;*************************************************************************
;宏定义:JZ_W
;功能:双字节数为0跳转
;参数:
;	(xh,xl):要判断的数
;	Label:跳转目标
;*************************************************************************
JZ_W	MACRO	xh,xl, Label
	MOV	A, xh
	ORL	A, xl
	JZ	Label
	ENDM


;*************************************************************************
;宏定义:JNZ_W
;功能:双字节数不为0跳转
;参数:
;	(xh,xl):要判断的数
;	Label:跳转目标
;*************************************************************************
JNZ_W	MACRO	xh,xl, Label
	MOV	A, xh
	ORL	A, xl
	JNZ	Label
	ENDM


;*************************************************************************
;宏定义:DJNZ_W
;功能:双字节数自减1,结果不为0跳转
;参数:
;	(xh,xl):要操作的数
;	Label:跳转目标
;*************************************************************************
DJNZ_W	MACRO	xh,xl, Label
LOCAL	next
	MOV	A, xl
	JNZ	next
	DEC	xh
next:
	DEC	xl
	MOV	A, xh
	ORL	A, xl
	JNZ	Label
	ENDM


;*************************************************************************
;宏定义:BEQ_W(Branch if Equal)
;功能:双字节数比较,如果相等则跳转
;参数:
;	(xh,xl),(yh,yl):要比较的两个数
;	Label:跳转目标
;*************************************************************************
BEQ_W	MACRO	xh,xl, yh,yl, Label
LOCAL	next
	MOV	A, xl
	XRL	A, yl
	JNZ	next
	MOV	A, xh
	XRL	A, yh
	JZ	Label
next:
	ENDM


;*************************************************************************
;宏定义:BNE_W(Branch if Not Equal)
;功能:双字节数比较,如果不相等则跳转
;参数:
;	(xh,xl),(yh,yl):要比较的两个数
;	Label:跳转目标
;*************************************************************************
BNE_W	MACRO	xh,xl, yh,yl, Label
	MOV	A, xl
	CJNE	A, yl, Label
	MOV	A, xh
	CJNE	A, yh, Label
	ENDM


;*************************************************************************
;宏定义:BHS_W(Branch if High or Same)
;功能:双字节无符号数比较,如果大于或等于则跳转
;参数:
;	(xh,xl),(yh,yl):要比较的两个数
;	Label:跳转目标
;*************************************************************************
BHS_W	MACRO	xh,xl, yh,yl, Label
	CLR	C
	MOV	A, xl
	SUBB	A, yl
	MOV	A, xh
	SUBB	A, yh
	JNC	Label
	ENDM


;*************************************************************************
;宏定义:BHI_W(Branch if High)
;功能:双字节无符号数比较,如果大于则跳转
;参数:
;	(xh,xl),(yh,yl):要比较的两个数
;	Label:跳转目标
;*************************************************************************
BHI_W	MACRO	xh,xl, yh,yl, Label
	SETB	C
	MOV	A, xl
	SUBB	A, yl
	MOV	A, xh
	SUBB	A, yh
	JNC	Label
	ENDM


;*************************************************************************
;宏定义:BLS_W(Branch if Low or Same)
;功能:双字节无符号数比较,如果小于或等于则跳转
;参数:
;	(xh,xl),(yh,yl):要比较的两个数
;	Label:跳转目标
;*************************************************************************
BLS_W	MACRO	xh,xl, yh,yl, Label
	SETB	C
	MOV	A, xl
	SUBB	A, yl
	MOV	A, xh
	SUBB	A, yh
	JC	Label
	ENDM


;*************************************************************************
;宏定义:BLO_W(Branch if Low)
;功能:双字节无符号数比较,如果小于则跳转
;参数:
;	(xh,xl),(yh,yl):要比较的两个数
;	Label:跳转目标
;*************************************************************************
BLO_W	MACRO	xh,xl, yh,yl, Label
	CLR	C
	MOV	A, xl
	SUBB	A, yl
	MOV	A, xh
	SUBB	A, yh
	JC	Label
	ENDM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -