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

📄 nob.asm

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 ASM
字号:
;二叉树按节点编号遍历算法
;
;                 A
;               /  \
;             /      \
;           B          C
;         /  \        /
;       D      E     F
;      / \    /     / \
;     G   H  I     J   K
;
TREE	EQU	20H	;二叉树存放的片外RAM页面。
OUT	EQU	21H	;被访问节点信息输出存放的片外RAM页面。

	ORG	0000H
	LJMP	TEST
	
	ORG	100H
TEST:	MOV	DPTR,#DATS;将二叉树的结构信息存放到片外RAM中。
	MOV	P2,#TREE
	MOV	R0,#0
	MOV	R2,#16
COPY:	CLR	A
	MOVC	A,@A+DPTR
	MOVX	@R0,A
	INC	DPTR
	INC	R0
	DJNZ	R2,COPY
	LCALL	NOORDER	;调用二叉树按节点编号遍历算法
STOP:	LJMP	STOP	;遍历顺序为ABCDEFGHIJK。

DATS:	DB	0BH,41H,42H,43H
	DB	44H,45H,46H,00H
	DB	47H,48H,49H,00H
	DB	4AH,4BH,00H,00H

NOORDER:MOV	DPH,#OUT;指向输出存放节点信息的片外RAM页面。
	MOV	DPL,#0
	MOV	R2,#0	;页面内256个字节。
	CLR	A
CLEAR:	MOVX	@DPTR,A	;初始化输出区。
	INC	DPTR
	DJNZ	R2,CLEAR
	MOV	P2,#TREE;指向二叉树存放页面。
	MOV	R0,#0
	MOV	DPH,#OUT;指向输出存放节点信息的片外RAM页面。
	MOV	DPL,#0
	MOVX	A,@R0	;读取二叉树有效节点总数。
	MOVX	@DPTR,A	;存放到输出区的00H单元。
	MOV	R2,A	;初始化控制访问操作的计数器。
	INC	R0	;指向根节点。
	INC	DPTR	;指向输出区第一个存放位置。
	JZ	ORDEND	;如果是空树,则结束访问。
NO1:	MOVX	A,@R0	;读取一个树中的节点。
	INC	R0	;调整指针。
	JZ	NO1	;是虚节点则跳过。
	MOVX	@DPTR,A	;是实节点则保存到输出区,完成访问的目的。
	INC	DPTR	;调整输出指针。
	DJNZ	R2,NO1	;访问完全部实节点否?
ORDEND:	RET		;结束访问。

	END

⌨️ 快捷键说明

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