(急!)二叉树遍历出现的问题,请高手帮忙看一下!在线等待!

liuxing321 2007-05-09 08:22:08
那位高手帮我看看这程序 用汇编实现二叉树 先提示用户输入 再三种遍历方式显示 到底哪错了 总出现 symbol not definded:RIGHT 如果把LIFT PROC 跟RIGHT PROC 对调一下又出现symbol not definded:LIF

.MODEL SMALL
.STACK 64
.DATA
;===================================================
.CODE
BT DB 63 DUP(0)
notice1 DB 'Please enter the root of binary tree,if there is not root press ENTER',0AH,0DH,'$'
notice2 DB 'Dose the''$'
notice3 DB 'have a liftchild? Y/N',0AH,0DH,'$'
notice4 DB 0AH,0DH,'Please input the value',0AH,0DH,'$'
notice5 DB 'have a rightchild? Y/N',0AH,0DH,'$'
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
;------------------create root--------------------
MOV AH,09H
MOV DX,OFFSET notice1;Please enter the root of binary tree,if there is not root press ENTER
INT 21H
MOV AX,0100H
INT 21h
CMP AL,0DH
JNZ EXIT
MOV DI,0H
MOV BT[DI],AL
MOV SI,OFFSET BT[DI]
;MOV BX,DI
CALL LIFT
;CALL RIGHT
;CALL VIEW

EXIT:
MOV AH,4cH
INT 21H
MAIN ENDP

;---------------------LIFT-------------------------
LIFT PROC
LI:
CMP BT[DI],0
JNZ LI1
INC DI
INC SI
LOOP LI
LI1:
MOV AH,09H
MOV DX,OFFSET notice2;Dose the
INT 21H
MOV AH,09H
MOV DX,SI
MOV AH,09H
MOV DX,OFFSET notice3;have a liftchild? Y/N
INT 21H
MOV AX,0100H
INT 21h
CMP AL,59H ;Y
JNZ TORIGHT
MOV AH,09H
MOV DX,OFFSET notice4;Please input the value
INT 21H
INT 21H
MOV AX,0100H
INT 21h
MOV BX,DI
SHL BX,1
INC BX
MOV BYTE PTR BT[BX],AL

TORIGHT:
;CALL RIGHT

RET
LIFT ENDP
END LIFT

;--------------------RIGHT-------------------------
RIGHT PROC FAR
MOV AH,09H
MOV DX,OFFSET notice2;Dose the
INT 21H
MOV AH,09H
MOV DX,SI
MOV AH,09H
MOV DX,OFFSET notice5;have a rightchild? Y/N
INT 21H
MOV AX,0100H
INT 21h
CMP AL,59H ;Y
JNZ TOLIFT
MOV AH,09H
MOV DX,OFFSET notice4;Please input the value
INT 21H
INT 21H
MOV AX,0100H
INT 21h
MOV BX,DI
SHL BX,1
INC BX
INC BX
MOV BYTE PTR BT[BX],AL

TOLIFT:
INC DI
INC SI
CMP DI,0EH
JO BACK
CALL LIFT
BACK:

RET
RIGHT ENDP
END RIGHT
;--------------------VIEW-------------------------
VIEW PROC
CALL FIRST
CALL MIDD
CALL LAST

RET
VIEW ENDP
END VIEW


END MAIN
...全文
311 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuxing321 2007-05-09
  • 打赏
  • 举报
回复
大哥 谢谢呀 加我吧
liuxing321 2007-05-09
  • 打赏
  • 举报
回复
大哥 你QQ是多少 我的297317205
liuxing321 2007-05-09
  • 打赏
  • 举报
回复
又出现这问题了 'Please enter the root of binary tree,if there is not root press 重复出现 还不能输东西
大熊猫侯佩 2007-05-09
  • 打赏
  • 举报
回复
ml g.asm
liuxing321 2007-05-09
  • 打赏
  • 举报
回复
大哥 你还在么 我在MASM G.ASM 后出现错误 说G.ASM 打不开 怎么回事呀 急!!!!!!!!!1
liuxing321 2007-05-09
  • 打赏
  • 举报
回复
谢谢!我试试!希望大家多多关照!
大熊猫侯佩 2007-05-09
  • 打赏
  • 举报
回复
try it:

.MODEL SMALL
.STACK 64
.DATA
;===================================================
.CODE
BT0 DB 63 DUP(0)
notice1 DB 'Please enter the root of binary tree,if there is not root press ENTER',0AH,0DH,'$'
notice2 DB 'Dose the''$'
notice3 DB 'have a liftchild? Y/N',0AH,0DH,'$'
notice4 DB 0AH,0DH,'Please input the value',0AH,0DH,'$'
notice5 DB 'have a rightchild? Y/N',0AH,0DH,'$'
MAIN PROC FAR
MOV AX,@DATA
MOV DS,AX
;------------------create root--------------------
MOV AH,09H
MOV DX,OFFSET notice1;Please enter the root of binary tree,if there is not root press ENTER
INT 21H
MOV AX,0100H
INT 21h
CMP AL,0DH
JNZ EXIT0
MOV DI,0H
MOV BT0[DI],AL
lea SI,BT0[DI]
;MOV BX,DI
CALL LIFT
;CALL RIGHT
;CALL VIEW

EXIT0:
MOV AH,4cH
INT 21H
MAIN ENDP

;---------------------LIFT-------------------------
LIFT PROC
LI:
CMP BT0[DI],0
JNZ LI1
INC DI
INC SI
LOOP LI
LI1:
MOV AH,09H
MOV DX,OFFSET notice2;Dose the
INT 21H
MOV AH,09H
MOV DX,SI
MOV AH,09H
MOV DX,OFFSET notice3;have a liftchild? Y/N
INT 21H
MOV AX,0100H
INT 21h
CMP AL,59H ;Y
JNZ TORIGHT
MOV AH,09H
MOV DX,OFFSET notice4;Please input the value
INT 21H
INT 21H
MOV AX,0100H
INT 21h
MOV BX,DI
SHL BX,1
INC BX
MOV BYTE PTR BT0[BX],AL

TORIGHT:
;CALL RIGHT

RET
LIFT ENDP
END LIFT

;--------------------RIGHT-------------------------
RIGHT PROC FAR
MOV AH,09H
MOV DX,OFFSET notice2;Dose the
INT 21H
MOV AH,09H
MOV DX,SI
MOV AH,09H
MOV DX,OFFSET notice5;have a rightchild? Y/N
INT 21H
MOV AX,0100H
INT 21h
CMP AL,59H ;Y
JNZ TOLIFT
MOV AH,09H
MOV DX,OFFSET notice4;Please input the value
INT 21H
INT 21H
MOV AX,0100H
INT 21h
MOV BX,DI
SHL BX,1
INC BX
INC BX
MOV BYTE PTR BT[BX],AL

TOLIFT:
INC DI
INC SI
CMP DI,0EH
JO BACK
CALL LIFT
BACK:

RET
RIGHT ENDP
END RIGHT
;--------------------VIEW-------------------------
VIEW PROC
CALL FIRST
CALL MIDD
CALL LAST

RET
VIEW ENDP
END VIEW


END MAIN
liuxing321 2007-05-09
  • 打赏
  • 举报
回复
为什么没有人回复呢?哪里有问题,请热心人帮帮忙!!!说一下哈,各位高手!

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧