+ -
当前位置:首页 → 问答吧 → C语言的指针相当于汇编语言的什么指令?

C语言的指针相当于汇编语言的什么指令?

时间:2010-12-31

来源:互联网

---

作者: GGGFFGGG   发布时间: 2010-12-31

没有与C语言指针对应的指令。
楼主可以写一个指针,再反汇编回来看看。

作者: ydfivy   发布时间: 2010-12-31

C++ 指针操作是没有对应的单一们汇编指令,它是由一串指令来实现的,如:
int *p,i;
那么 p=&i;
的汇编指令可能是
lea eax,[i_address] 
mov dword ptr[p_address],eax

作者: Michael_g   发布时间: 2010-12-31

引用 2 楼 michael_g 的回复:

C++ 指针操作是没有对应的单一们汇编指令,它是由一串指令来实现的,如:
int *p,i;
那么 p=&i;
的汇编指令可能是
lea eax,[i_address]
mov dword ptr[p_address],eax


多级指针的汇编指令怎样?

作者: GGGFFGGG   发布时间: 2010-12-31

实际上指针就是保存着存储的地址(或仅指偏移地址)。

int *p,i,x;

应该相当于

p dw ? (或dd ?)
i dw ?
x dw ?


p=&i;

相当于

mov p,offset i
(或mov p,offset i  
  mov p+2,seg i
 )


x=*p;
相当于
mov bx,p
mov x,[bx] (以下这两句只为说明结果,不去考虑语法)
(或
  mov es,p+2  
  mov x,es:[bx]
 )

作者: shzhfu   发布时间: 2010-12-31

可否例举个C语言多级指针的汇编指令例子?

作者: GGGFFGGG   发布时间: 2010-12-31