测试标志有两个主要指令:Jcc指令和SETcc指令.查看这两个表将为您提供检查这两个标志的几条指令.
使用该SETcc指令的一个例子是:
seto al ; Set byte to 1 if overflow (OF=1)
sets ah ; Set byte to 1 if sign (SF=1)
Run Code Online (Sandbox Code Playgroud)
现在EAX将包含十六进制值
0101 if both flags have been set
0100 if sign has been set
0001 if overflow has been set
0000 if both flags have been cleared
Run Code Online (Sandbox Code Playgroud)
现在你可以比较AL(溢出)和AH(签名)cmp al, ah.该jl指令检查差值(SF≠OF),因此a jne(不等于/零)之后cmp具有与原件相同的效果jl.
最后,模拟a的整个代码jl是:
seto al
sets ah
cmp al, ah
jne lesser
Run Code Online (Sandbox Code Playgroud)