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

📄 fdd1.asm

📁 通过调试的有用的单片机控制程序
💻 ASM
字号:
;入口条件:待查找的内容在累加器A中,表格首址在DPTR中,字节数在R7中。
;出口信息:OV=0 时,顺序号在累加器A中		;OV=1 时,未找到。
;影响资源:PSW、A、B、R2、R3、R4      堆栈需求:  2字节

FDD1:	MOV	B,A			;保存待查找的内容
	MOV	R2,#0		;区间低端指针初始化(指向第一个数据)
	MOV	A,R7
	DEC	A
	MOV	R3,A		;区间高端指针初始化(指向最后一个数据)
FD61:	CLR	C			;判断区间大小
	MOV	A,R3
	SUBB	A,R2
	JC	FD69		;区间消失,查找失败
	RRC	A			;取区间大小的一半
	ADD	A,R2		;加上区间的低端
	MOV	R4,A		;得到区间的中心
	MOVC	A,@A+DPTR	;读取该点的内容
	CJNE	A,B,FD65	;与待查找的内容比较
	CLR	OV			;相同,查找成功
	MOV	A,R4		;取顺序号
	RET 	
FD65:	JC	FD68		;该点的内容比待查找的内容大否?
	MOV	A,R4		;偏大,取该点位置
	DEC	A			;减一
	MOV	R3,A		;作为新的区间高端
	SJMP	FD61		;继续查找
FD68:	MOV	A,R4		;偏小,取该点位置
	INC	A		;加一
	MOV	R2,A		;作为新的区间低端
	SJMP	FD61		;继续查找
FD69:	SETB	OV			;查找失败
	RET

⌨️ 快捷键说明

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