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

📄 3.asm

📁 用汇编语言实现二叉树输入和遍历~ 河北理工大学 吴亚峰
💻 ASM
字号:
.model small
.stack 10
.data

INROOT	DB	'THE ROOT: ','$'
INLEFT	DB	"'S LEFT: ",'$'
INRIGHT	DB	"'S RIGHT: ",'$'
ent		DB	10,13,'$'

ETREE DB 'This is an empty tree!!!','$'   
FROOT DB 'PRE_ORDER  IS: ','$'		 
MROOT DB 0ah,0dh,'IN_ORDER   IS: ','$'	  
LROOT DB 0ah,0dh,'POST_ORDER IS: ','$'	  
TISHI DB 'Result:',0ah,0dh,'$'		

TREE_PRE   db   33  DUP(' '),'$'     
TREE_IN  DB   33  DUP(' '),'$'
TREE_POST  DB   33  DUP(' '),'$'

.code
main proc far
		mov ax,@data
		mov ds,ax				 
		
		
		mov ax,0600h				 
		mov bh,71h				  
		mov cx,0000h				 
		mov dx,184fh				  
		int 10h
		
		sub di,di
		sub si,si
		sub bx,bx
		mov ax,23h
		push ax
		mov ah,02h
		mov bh,00h
		mov dx,0000h
		int 10h
		mov ah,09h
		lea dx,inroot
		int 21h
		mov ah,01h
		int 21h
		cmp al,13
		jz ppp
		mov TREE_PRE[di],al
		mov ah,0
		push ax
		call enter
		mov ah,02h
		mov dl,TREE_PRE[di]
		int 21h
		mov ah,09h
		lea dx,inleft
		int 21h
		inc di
		jmp input
		ppp: jmp end2
main endp
;=====================================
input:
		mov ah,01h
		int 21h
		cmp al,13
		jz outenter
		mov TREE_PRE[di],al
		mov ah,0
		push ax
		call enter
		mov ah,02h
		mov dl,TREE_PRE[di]
		int 21h
		mov ah,09h
		lea dx,inleft
		int 21h
		inc di
		jmp input
;=====================================
outenter:
		call enter
		jmp inputr
;=====================================
inputr:
		pop ax
		cmp ax,23h
		jz output
		cmp ah,0
		jz setinorder
		mov TREE_POST[bx],al
		inc bx
		jmp inputr
;=====================================
setinorder:
		mov TREE_IN[SI],al
		inc SI
		mov ah,1
		push ax
		mov ah,02h
		mov dl,al
		int 21h
		mov ah,09h
		lea dx,inright
		int 21h
		jmp input
;=====================================
enter proc near
		mov ah,09h
		lea dx,ent
		int 21h
		ret
enter endp
;=====================================
output:
		mov ax,0600h				  
		mov bh,71h				 
		mov cx,0000h				 
		mov dx,184fh				 
		int 10h
		mov ah,02h
		mov bh,00h
		mov dx,0000h
		int 10h
		
		lea dx,TISHI				
		mov ah,09h
		int 21h
		call enter
		mov ah,09h
		lea dx,FROOT
		int 21h
		mov ah,09h
		lea dx,TREE_PRE
		int 21h
		call enter
		mov ah,09h
		lea dx,MROOT
		int 21h
		mov ah,09h
		lea dx,TREE_IN
		int 21h
		call enter
		mov ah,09h
		lea dx,LROOT
		int 21h
		mov ah,09h
		lea dx,TREE_POST
		int 21h
		jmp end0
		
end2:
		mov ah,02h				
		mov bh,00h
		mov dx,0000h
		int 10h
		
		lea dx,ETREE				
		mov ah,09h
		int 21h
		
end0:
		mov ax,4c00h
		int 21h
		end main

⌨️ 快捷键说明

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