On 2019-07-09 05:27 +0000, Mahmood Naderan via gcc-help wrote: > Hi, > With some random numbers in the first byte (out of 15 bytes) of x86 > instructions, I see some bad instructions as below > > 4: 9a (bad) > 4: c4 (bad) > 4: c5 00 00 (bad) > > First byte is the prefix and I wonder why the third line is more than one byte > and at the same time it is marked as bad. You mean x86-64, instead of x86. On x86 "c5 00" means "lds (%eax),%eax". "c5" itself is not illegal. For example, "c5 00 58 00" means an AVX instruction "vaddps (%rax),%xmm15,%xmm8". The disassembler can only determine that it's an illegal instruction after it has seen "c5 00 00". -- Xi Ruoyao <xry111@xxxxxxxxxxxxxxxx> School of Aerospace Science and Technology, Xidian University