zl程序教程

您现在的位置是:首页 >  其它

当前栏目

汇编汉诺塔

汇编 汉诺塔
2023-09-14 08:57:54 时间
;递归时注意:在每一层的递归中,保证ebp基址指针的只是一样的(如果你使用了它) Hanoi Proc near32 push ebp mov ebp, esp mov ecx, [ebp+20];得到当前剩余的砖块的数目 jecxz Finish ;完成n-1块从a柱子借助c柱子移向b柱子 dec ecx push ecx pushd [ebp+16]; a pushd [ebp+8]; c pushd [ebp+12]; b call Hanoi add esp, 16;移除参数 a, b, c, 和砖块数目 ;完成a柱子上的最后一块移向c柱子 mov al, [ebp+16];得到a柱子的编号 mov result, al mov al, - mov result+1, al mov al, mov result+2, al mov al, [ebp+8];得到c柱子的编号 mov result+3, al output result;输出移动结果 ;完成n-1块从b柱子借助a柱子移向c柱子 mov ecx, [ebp+20] dec ecx push ecx; 得到剩下的盘子 push [ebp+12]; b push [ebp+8]; c push [ebp+16]; a call Hanoi add esp, 16;移除参数 Finish: pop ebp;还原ebp指针 ret ; Hanoi Endp _start: output string1 input strNum, 10 atod strNum push eax;初始化操作 pushd a pushd b pushd c call Hanoi invoke ExitProcess, 0 public _start end
C语言典型例题四——斐波那契数列 Fibonacci(斐波那契)数列 求斐波那契数列的前40个数。这个数列有个特点:第1,2两个数为1,1。从第三个数开始,该数是其前面两个数之合。即该数列为1,1,2,3,5,8,13……。