我试图理解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;
但是我不确定该怎么做。
谢谢!