当前位置: 代码迷 >> 汇编语言 >> 指针传值解决方案
  详细解决方案

指针传值解决方案

热度:351   发布时间:2016-05-02 04:46:43.0
指针传值
typedef struct s_proc {
STACK_FRAME regs;
t_16 ldt_sel;
DESCRIPTOR ldts[LDT_SIZE];

t_32 pid;
char p_name[16];
}PROCESS;
有以上结构体,现有指针p_proc_ready指向某个此结构体变量,然后在汇编中有如下语句:
mov esp, [p_proc_ready]
很显然这里需要将一个地址放入esp中,但是[p_proc_ready]应该指某个地址中的内容,为什么要加方括号呢?指针本来就是地址,直接传入不行吗?

另:这是nasm的语法,但是我觉得就这里而言应该和masm是一样的

------解决方案--------------------
mov esp, [p_proc_ready]

就是不地址内容给esp,你的理解没有错,
------解决方案--------------------
引用:
源代码中在mov esp, [p_proc_ready]之下还有其他代码:
lldt [esp + P_LDT_SEL]

对于mov操作应该是把某个地址放入esp,但这里加了括号,那就应该是某个地址处的内容。这个应该怎么解释呢?
后面那个代码用于参考,如果可以的话,顺便把这句话也解释一下
加上[]括号,代表的就是括号里的数作为地址指向的那个地址的值。
  相关解决方案