相关疑难解决方法(0)

`testl` eax对抗eax?

我想了解一些装配.

汇编如下,我对该testl行感兴趣:

000319df  8b4508        movl   0x08(%ebp), %eax  
000319e2  8b4004        movl   0x04(%eax), %eax  
000319e5  85c0          testl  %eax, %eax  
000319e7  7407          je     0x000319f0  
Run Code Online (Sandbox Code Playgroud)

我想了解的那点testl之间的%eax%eax?我认为这段代码的具体内容并不重要,我只是试图用自己来理解测试 - 这种价值总是不正确吗?

x86 assembly instructions

114
推荐指数
5
解决办法
8万
查看次数

与自己对寄存器进行异或的目的是什么?

xor eax, eax将永远设置eax为零,对吗?那么,为什么MSVC++有时会把它放在我的可执行代码中呢?这样效率更高mov eax, 0吗?

012B1002  in          al,dx 
012B1003  push        ecx  
    int i = 5;
012B1004  mov         dword ptr [i],5 
    return 0;
012B100B  xor         eax,eax 
Run Code Online (Sandbox Code Playgroud)

另外,这意味着什么in al, dx

x86 assembly

112
推荐指数
3
解决办法
6万
查看次数

标签 统计

assembly ×2

x86 ×2

instructions ×1