所以我很讨厌那些“标志”和字节操作,所以这里是汇编代码:
loc_4097F5:
.text:004097F5 cmp [esi+1Bh], dl
.text:004097F8 jnz short loc_409812
.text:004097FA cmp [esi+6], dl
.text:004097FD jnz short loc_409812
.text:004097FF mov ecx, [ebp+490h]
.text:00409805 test cl, 2 ; How to represent this????
.text:00409808 jz short loc_40980F
.text:0040980A test ch, 1 ; How to represent this????
.text:0040980D jz short loc_409812
.text:0040980F loc_40980F:
.text:0040980F mov [esi+25h], dl
.text:00409812 loc_409812:
.text:00409812 mov ecx, [esp+18h+arg_0]
.text:00409816 cmp [ecx+8Ch], eax
这是反编译器生成的伪代码:
v13 = a3->field_454.TextureCaps;
if ( !(v13 & 2) || BYTE1(v13) & 1 )
*(_BYTE *)(v5 + 37) = v3;
任何想法如何为 VC++ 6.0 编译器表示这一点(编译此代码)?
编辑:实际上 a3->field_454 是一个 D3DCAPS9 结构。