小编Duk*_*kem的帖子

asm x86中变量声明的顺序?

这段代码:

int main()
{

  char buffer[64];
  int check;
...
Run Code Online (Sandbox Code Playgroud)

如你所见,check声明为AFTER buffer,所以在堆栈中,我们必须在堆栈中有check ABOVE buffer吗?

但是,当我用gdb反汇编(x86)时,这就是我得到的:

- > check0xbffff4f8

- > buffer0xbffff4b8

我的问题:堆栈中是否存在局部变量的特定顺序?

另外,我必须告诉你,我在另一台计算机上尝试了同样的事情(x86也是,gcc编译选项相同,但gdb版本和linux发行版不同),顺序不一样......:S

谢谢 !

PS:如果你想了解更多细节,请看截图:(左边是电脑1,右边是电脑2) 在此输入图像描述

c stack-overflow x86 stack gcc

5
推荐指数
1
解决办法
424
查看次数

TEST ECX,3未测试ECX指向的值

我有这个:

TEST ECX, 3
Run Code Online (Sandbox Code Playgroud)

ECX包含包含该字符的地址内存'a'.

但是,经过测试,ZF设置为1!这怎么可能?

以下是截图之前之后的指令.

testing x86 assembly ollydbg

0
推荐指数
1
解决办法
439
查看次数

标签 统计

x86 ×2

assembly ×1

c ×1

gcc ×1

ollydbg ×1

stack ×1

stack-overflow ×1

testing ×1