What gets compared to what in the cmovl opcode?

assembly, compare

Solution

cmov doesn't do a comparison, it uses the result of a previous comparison - if it is true, it will perform the mov. cmovl means "perform move if previous comparison resulted in "less than".

For example:

cmp ecx, 5
cmovl eax, ebx ; eax = ebx if ecx < 5

Problem

In the assembly opcode cmovl, what gets compared? For example: EAX: 00000002 EBX: 00000001 ``` cmovl eax,ebx ``` What is the result? Which one needs to be less so they can be moved? Thank you!

Original source