小编Dav*_*vis的帖子

汇编中的递归?

我正在努力更好地掌握汇编,当我必须处理寄存器,弹出/推送等时,我对如何递归调用函数感到有点困惑.

我在C++中嵌入x86程序集.在这里,我试图创建一个方法,给定一个整数数组将按照它们出现在数组中的顺序构建一个包含这些整数的链表.

我通过调用递归函数来做到这一点:

insertElem (struct elem *head, struct elem *newElem, int data) 
Run Code Online (Sandbox Code Playgroud)

-head:列表的负责人

-data:将在列表末尾插入的数字

-newElem:指向内存中我将存储新元素的位置(数据字段)

我的问题是我不断覆盖寄存器而不是典型的链表.例如,如果我给它一个数组{2,3,1,8,3,9}我的链表将返回第一个元素(头部)并且只返回最后一个元素,因为元素在头部之后会相互覆盖不再为空.

所以这里我的链表看起来像:2 - > 9而不是2 - > 3 - > 1 - > 8 - > 3 - > 9

我觉得我没有掌握如何组织和处理寄存器.newElem在EBX中,并且不断被重写.提前致谢!

recursion x86 linked-list

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

linked-list ×1

recursion ×1

x86 ×1