欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

指针传值解决方案

更新时间: 2014-01-05 03:16:08 责任编辑: Author_N1

 

指针传值
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,但这里加了括号,那就应该是某个地址处的内容。这个应该怎么解释呢?
后面那个代码用于参考,如果可以的话,顺便把这句话也解释一下
加上[]括号,代表的就是括号里的数作为地址指向的那个地址的值。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:16:08
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20262/
本文WWW.DOC100.NET DOC100.NET版权所有。