8.1.2前根遍历.txt
来自「MCS51 单片机源码系列之 第八章 树和图 」· 文本 代码 · 共 90 行
TXT
90 行
STACK EQU 1FH
BOTTOM EQU 00H
TOP DATA 3EH
TREE EQU 20H
OUT EQU 21H
TST:
MOV SP,#5FH
MOV DPTR,#DATS
MOV P2,#TREE
MOV R0,#0
MOV R2,#32
CPY:
CLR A
MOVC A,@A+DPTR
MOVX @R0,A
INC DPTR
INC R0
DJNZ R2,CPY
MOV DPH,#OUT
MOV DPL,#0
MOV R2,#0
CLR A
CLEAR:
MOVX @DPTR,A
INC DPTR
DJNZ R2,CLEAR
MOV P2,#TREE
MOV R0,#0
MOV DPH,#OUT
MOV DPL,#0
MOVX A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
JZ STOP
LCALL SETNULL
LCALL PRE
DATS:
DB 0BH,41H,42H,43H
DB 44H,45H,46H,00H
DB 47H,48H,49H,00H
DB 4AH,4BH,00H,00H
DB 0,0,0,0
DB 0,0,0,0
DB 0,0,0,0
DB 0,0,0,0
PRE:
MOVX A,@R0
JZ PREND
MOVX @DPTR,A
INC DPTR
MOV A,R0
JB ACC.7,PREND
LCALL DPUSH
CLR C
RLC A
MOV R0,A
LCALL PRE
LCALL DPOP
SETB C
RLC A
MOV R0,A
LCALL PRE
PREND:
RET
SETNULL:
MOV A,#BOTTOM
MOV TOP,A
RET
DPUSH:
INC TOP
PUSH DPH
PUSH DPL
MOV DPH,#STACK
MOV DPL,TOP
MOVX @DPTR,A
POP DPL
POP DPH
RET
DPOP:
PUSH DPH
PUSH DPL
MOV DPH,#STACK
MOV DPL,TOP
MOVX A,@DPTR
DEC TOP
POP DPL
POP DPH
RET
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?