首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

指针传值解决方案

2013-11-25 
指针传值typedef struct s_proc {STACK_FRAMEregst_16ldt_selDESCRIPTORldts[LDT_SIZE]t_32pidcharp_n

指针传值
typedef struct s_proc {
STACK_FRAMEregs;
t_16ldt_sel;
DESCRIPTORldts[LDT_SIZE];

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

另:这是nasm的语法,但是我觉得就这里而言应该和masm是一样的
[解决办法]
movesp, [p_proc_ready]

就是不地址内容给esp,你的理解没有错,
[解决办法]

引用:
源代码中在mov esp, [p_proc_ready]之下还有其他代码:
lldt[esp + P_LDT_SEL]

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

热点排行