按月存档: 2012/04

硬件方向个人札记(part 2)

分类:硬件方向个人札记评论:3条作者:SimolluS Heinz日期:2012-04-15阅读:199 views

有一段时间没有写这方面的东西了,原因很简单,寒假之后由16位汇编转向了32位汇编,显然刚开始非常水,实在不好意思发文章来找鄙视的~直到今天写了一个有点意思的递归程序,虽说班里的大牛,也就是我们的malash同学听说后还是直接把我狠狠鄙视了一顿,觉得这完全是少见多怪递归应该打回去重学的缘故,但是嘛……姑且反以为荣地写一下吧,大牛们轻拍~ 这次学习32位汇编使用的教材是《Intel 高级语言程序设计》(第五版),也就是Irvine的那本书,题目出自8.3.3.6,大意是写出生成斐波那契数列的前20个整数的递归算法。利用之前对例题,也就是递归求阶乘的经验,最初对解题过程做此分析: 1:本题与阶乘题的区别在于每一步骤所需的两个操作数都是之前的结果 2:此区别将导致需要在某一或不同位置存入之前两次运算的数据 3:其中一次的数据可以直接由递归过程依次传递,另一次需要长时间保存 故创建堆栈框架如此: Val20 ReturnMain EBP0 Val19 ReturnFact EBP1 Val18 …… 其中Valn代表在此前的某一次递归中应当引用的另一个“古老”些的数据,首次产生的代码如下图:   主程序中首先初始化参数,将递归次数压入堆栈,进…