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

📄 seqsrch.asm

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 ASM
字号:
;顺序查找算法。
DATS	EQU	30H	;线性表首址。
N	EQU	17H	;数据元素个数。
OBJ	DATA	2FH	;查找对象存放单元。
FIND	BIT	00H	;查找成功标志。

	ORG	0000H
	LJMP	TEST
	
	ORG	100H
TEST:	MOV	DPTR,#LIST;将线性表拷贝到片内RAM中。
	MOV	R0,#DATS
	MOV	R2,#N
COPY:	CLR	A
	MOVC	A,@A+DPTR
	MOV	@R0,A
	INC	DPTR
	INC	R0
	DJNZ	R2,COPY
	MOV	OBJ,#31H;查找对象为31H。
	LCALL	SEQSRCH	;调用顺序查找算法,查找成功。
	MOV	OBJ,#0CFH;查找对象为0CFH。
	LCALL	SEQSRCH	;调用顺序查找算法,查找失败。
STOP:	LJMP	STOP

LIST:	DB	35H,90H,77H,3EH	;测试用线性表
	DB	0A4H,6FH,0C2H,04H
	DB	31H,74H,29H,15H
	DB	6CH,28H,0CEH,44H
	DB	8DH,0D3H,55H,62H
	DB	07H,2EH,63H

SEQSRCH:MOV	R0,#DATS;指向线性表起始端。
	MOV	R2,#N	;设置最多比较次数。
LOOP:	MOV	A,@R0	;读取线性表中的一个元素。
	XRL	A,OBJ	;是要查找的对象吗?
	JZ	OK	;是。
	INC	R0	;不是,准备比较下一个数据元素。
	DJNZ	R2,LOOP	;全部元素均比较完了吗?
	CLR	FIND	;找不到指定的对象,查找失败,清除成功标志。
	RET		;返回。
OK:	SETB	FIND	;找到了指定的对象,查找成功,设立成功标志。
	MOV	A,R0	;将指定对象在线性表中的位置存放在累加器中。
	RET		;返回。
	END

⌨️ 快捷键说明

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