下面的代码片段是单个指令的替代品。 我已经尝试了几个小时而且无法真正解决它们
CMP EBX,EAX
JNE X1
MOV EBX,ECX
JMP X2
X1: MOV EAX,EBX
X2
PUSHF
MOV BH,FFH
CMP BL,0
JL X1
NOT BH
X1: POPF
BT AX,15
JC X1
AND EAX,0000FFFFH
JMP X2
X1: OR EAX, FFFF0000H
X2:
答案 0 :(得分:2)
#[json:flights]
。 cmpxchg ebx, ecx
if (eax == ebx) ebx = ecx else eax = ebx
为否定,0FFh
会bh
,否则为bl
。因此,这只是标志延伸,即。 00h
movsx bx, bl
,即。它是ax
。但请注意,这并不会影响标志,而不会影响代码段。