| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 460 人关注过本帖
标题:求大神帮忙具体解释一下??
只看楼主 加入收藏
fanjinxiang
Rank: 1
等 级:新手上路
帖 子:13
专家分:7
注 册:2012-10-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求大神帮忙具体解释一下??
汇编实现HAnio汉诺塔问题
datarea segment
bin dw 0
chnum db 10 dup('0'),'$'
one dw 'A'
two dw 'B'
three dw 'C'
strshow db '-->$'
chline db 0dh,0ah,'$'
prompt db 'Please input the plate number(1-99):$'
chtimes1 db 0dh,0ah,'You have moved $'
chtimes2 db 'times',0dh,0ah,'$'
inputlist label byte
maxlen db 3
actlen db 0
chinput db 3 dup ('0'),'$'
multfact dw 1
datarea ends
code segment
main proc far
assume cs:code,ds:datarea
start:
mov ax,datarea
mov ds,ax
loopagain:
lea dx,prompt
mov ah,09h
int 21h
lea dx,inputlist
mov ah,0ah
int 21h
call asctobin
mov ax,1
cmp ax,bin
ja loopagain
mov ax,99
cmp bin,ax
ja loopagain
push bin
push one
push two
push three
lea dx,chline
mov ah,09h
int 21h
call hanoi
lea dx,chtimes1
mov ah,09h
int 21h
mov cx,0010
lea si,chnum
shownum:
cmp byte ptr [si],'0'
je notadd
add byte ptr [si],48
notadd:
inc si
loop shownum
lea dx,chnum
mov ah,09h
int 21h
lea dx,chtimes2
mov ah,09h
int 21h
mov bin,0
mov actlen,0
mov [chinput],'0'
mov [chinput+1],'0'
mov cx,0010
lea si,chnum
put0:
mov byte ptr [si],'0'
inc si
loop put0
jmp loopagain
loopend:
mov ah,4ch
int 21h
main endp
asctobin proc near
push ax
push cx
cmp actlen,0
je loopend
cmp actlen,1
je l2
jmp l3
l2:
xor ah,ah
mov al,[chinput]
sub al,48
add bin,ax
jmp out1
l3:
xor ah,ah
mov al,[chinput+1]
sub al,48
add bin,ax
mov al,[chinput]
sub al,48
mov cl,10
mul cl
add bin,ax
out1:
pop cx
pop ax
ret
asctobin endp
hanoi proc near
push ax
push dx
push bp
mov bp,sp
mov ax,1
cmp ax,word ptr [bp+14]
je equal
jmp unequal
equal:
lea si,chnum+10
loopnum0:
xor ah,ah
dec si
mov al,[si]
add al,1
aaa
mov [si],al
cmp ah,1
je loopnum0
mov dx,word ptr[bp+12]
mov ah,2
int 21h
lea dx,strshow
mov ah,09h
int 21h
mov dx,word ptr [bp+8]
mov ah,02h
int 21h
lea dx,chline
mov ah,09h
int 21h
jmp exit
unequal:
mov ax,[bp+14]
sub ax,1
push ax
push [bp+12]
push [bp+8]
push [bp+10]
call hanoi
lea si,chnum+10
loopnum1:
xor ah,ah
dec si
mov al,[si]
add al,1
aaa
mov [si],al
cmp ah,1
je loopnum1
mov dx,word ptr [bp+12]
mov ah,2
int 21h
lea dx,strshow
mov ah,09h
int 21h
mov dx,word ptr [bp+8]
mov ah,02h
int 21h
lea dx,chline
mov ah,09h
int 21h
mov ax,[bp+14]
sub ax,1
push ax
push [bp+10]
push [bp+12]
push [bp+8]
call hanoi
exit:
pop bp
pop dx
pop ax
ret 8
hanoi endp
code ends
end start

搜索更多相关主题的帖子: one number 
2012-11-17 10:36
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:4 
头像挺帅 代码太长看不懂
2012-11-17 10:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
无缩进
无注释

DO IT YOURSELF !
2012-11-17 10:56
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:4 
学习111

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-11-17 13:27
问虚
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2012-11-20
收藏
得分:4 
。。。
2012-11-20 12:29
快速回复:求大神帮忙具体解释一下??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037895 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved