Comments (1)
Let me elaborate a little bit on this issue. First of all the prefix here doesn't really matter, the issue is observed even without it;
bap-mc "660fc1c0" --show-bil --arch=X86 --show-insn=asm
xaddw %ax, %ax
{
v1 := low:16[EAX] + low:16[EAX]
EAX := extract:31:16[EAX].low:16[EAX]
EAX := extract:31:16[EAX].v1
CF := low:16[EAX] < v1
OF := high:1[v1] = high:1[low:16[EAX]] & (high:1[v1] ^ high:1[low:16[EAX]])
AF := 0x10 = (0x10 & (low:16[EAX] ^ v1 ^ low:16[EAX]))
PF := ~low:1[let v2 = low:16[EAX] >> 4 ^ low:16[EAX] in
let v2 = v2 >> 2 ^ v2 in
v2 >> 1 ^ v2]
SF := high:1[low:16[EAX]]
ZF := 0 = low:16[EAX]
}
Indeed, in CF := low:16[EAX] < v1
the left hand side of the comparison low:16[EAX]
will be always equal to the right hand side, since it was assigned in the previous statement. So it will be always false.
from meandiff.
Related Issues (20)
- Invalid CF calculation - `sbb`
- Invalid OF calculation - `xadd`, `sbb`
- Invalid stack operation - `pop`
- Invalid padding - `mov`
- Operand address changed - `xchg`, `xadd`, `cmpsb`, `cmpsd`
- No memory alignment - `movaps`, `movdqa`
- Invalid store/load AF behaviour - `sahf`, `lahf`
- Invalid order of calculation - `cmpxchg`
- Not taking part of value - `bt`, `bts`, `sbb`
- Invalid AF calculation - `scasb`, `scasd`, `add`, `adc`, `sbb`, `sub`, `cmp`, `inc`, `dec`
- Confusion of source and destination operands - `palingr`, `cmpxchg`
- Unable to recognize prefix - `mov`, `lea`
- Invalid pushad behaviour - `pushad`
- Missing arithmetic operation - `xadd` HOT 4
- Not storing segment register - `mov` [x64] HOT 2
- Webpage improvement HOT 3
- Test Remill semantics HOT 1
- TODOs before the final release HOT 1
- Example code for testing ARM lifting HOT 1
- Maintenance Issue HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from meandiff.