ASM中的双指针

时间:2018-10-05 10:07:45

标签: assembly x86 nasm x86-64

我试图理解ASM(特别是x86-64 NASM)中的双指针,但是我无法理解它。

我正在ASM中实现一个链表(来自C),我想使用双指针对其进行迭代...但是我不明白它是如何工作的。 例如,以下内容将如何转换为ASM?

node** pAux = &(list->first);
node* aux = *(pAux);

我这样做了,但这似乎是错误的:

lea r15, [r12 + offset_first]    ; r15 = &(list->first)

mov rbx, [r15]                  ; rbx = *pAux

然后我需要更新指针的值,例如:

pAux = &(aux->next);
aux = *pAux;

但是我不确定该怎么做。

谢谢!

0 个答案:

没有答案