设为首页 加入收藏

TOP

汇编语言、与C语言、实现--汉诺塔--(二)
2014-11-23 20:00:19 来源: 作者: 【 】 浏览:35
Tags:汇编语言 语言 实现 汉诺
102 HANOI_MOVE proc near
103 MOV BP,SP
104 MOV AX,[BP+8]
105 CMP AX,1
106 JG moreThanOne ;n 不等于1则跳转
107 CALL STEP
108 MOV DX,[BP+2] ;取第一个值
109 CALL DISPLAY
110 LEA DX,to
111 CALL intro
112 MOV DX,[BP+6] ;取第三个值
113 CALL DISPLAY
114 CALL GroupMake
115
116 RET
117
118
119 moreThanOne:
120 MOV AX,[BP+2]
121 MOV BX,[BP+4]
122 MOV CX,[BP+6]
123 MOV DX,[BP+8]
124 DEC DX ;n-1
125 PUSH DX
126 PUSH BX
127 PUSH CX
128 PUSH AX
129 CALL HANOI_MOVE ;递归一次,进行下一循环
130 ADD SP,8
131
132 MOV BP,SP
133 CALL STEP
134 MOV DX,[BP+2] ;取第一个值
135 CALL DISPLAY
136 LEA DX,to
137 CALL intro
138 MOV DX,[BP+6] ;取第三个值
139 CALL DISPLAY
140 CALL GroupMake
141
142 MOV AX,[BP+2]
143 MOV BX,[BP+4]
144 MOV CX,[BP+6]
145 MOV DX,[BP+8]
146 DEC DX ;n-1
147 PUSH DX
148 PUSH CX
149 PUSH AX
150 PUSH BX
151 CALL HANOI_MOVE ;递归一次,进行下一循环
152 ADD SP,8
153
154 RET
155 HANOI_MOVE endp
156
157 EXIT: MOV AH,4CH ;退出 系统
158 INT 21H
159 CODE ENDS
160 END START
复制代码
耐心看看就行了,不是很难,栈的第一个参数是从bp+2开始的,别搞错了。
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Objective-C基础笔记(6)Block 下一篇C语言可变参数在宏定义中的应用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: