GCC编译器
$ gcc --version
gcc (GCC) 4.8.2
...
Run Code Online (Sandbox Code Playgroud)
不生成inc
汇编指令,它实际上可能有用,就像在这个C程序中:
int main(int argc, char **argv)
{
int sum = 0;
int i;
for(i = 0; i < 1000000000L; i++) <---- that "i++"
sum += i;
return sum;
}
Run Code Online (Sandbox Code Playgroud)
相反,它会生成一条add
指令:
0000000000000000 <main>:
0: 31 d2 xor %edx,%edx
2: 31 c0 xor %eax,%eax
4: 0f 1f 40 00 nopl 0x0(%rax)
8: 01 d0 add %edx,%eax
a: 83 c2 01 add $0x1,%edx <---- HERE
d: 81 fa 00 ca 9a …
Run Code Online (Sandbox Code Playgroud) les
集会教学的目的是什么?
为什么我们需要加载es
段和寄存器?本书给出了以下示例:
les bx, p ; Load p into ES:BX
mov es:[bx], al ; Store away AL
Run Code Online (Sandbox Code Playgroud)
为什么我们需要加载es
, bx
在这种情况下?
另外我们为什么要用es:[bx]
?如果p
指向存储器100H,是不能同时es
和bx
100H = 200H( bx+es
)?
标题几乎说,在Windows上,我可以通过使用类似的东西以某种方式模拟多线程应用程序中的多个工作目录openat
吗?
另见这个问题.