40756

What does JL mean in at&t syntax?

Question:

I'm working on a project for school and I cannot find anything on the what JL means in at&t syntax. For reference, the question is to find the value of %eax when NOP runs. Here is the code it's used in:

MOV $492,%ebx MOV $2494,%eax MOV $28063,%ecx CMP %eax,%ebx JL L1 JMP L2 L1: IMUL %eax,%ebx ADD %eax,%ebx MOV %ebx,%eax SUB %ecx,%eax JMP L3 L2: IMUL %eax,%ebx SUB %eax,%ebx MOV %ebx,%eax ADD %ecx,%eax L3: NOP

Also I would appreciate what JMP does as well as how the addition/subtraction/multiplication works (ADD/SUB/IMUL). I don't want to cheat, I just want to understand what's happening. For example, do you change the first number or the second when using math? Thank you all so much for helping.

Answer1:

That is assemply language , JL is Jump if Less

This also works in x86 assembly language.

CMP %eax,%ebx JL L1

We compare EAX to EBX, then we'll jump to L1 depending on that comparison.

More specific - If the contents of EAX are less than the contents of EBX, jump to the label L1

See - <a href="https://stackoverflow.com/questions/9617877/assembly-jg-jnle-jl-jnge-after-cmp" rel="nofollow">Assembly - JG/JNLE/JL/JNGE after CMP</a>

Answer2:

jl (jump on less than, signed) <a href="http://en.wikipedia.org/wiki/X86_assembly_language" rel="nofollow">wiki</a>

Answer3:

Unfortunately, I can't comment due to low reputation. However, the above answers are not fully correct.

The information that the code is given in AT&T syntax is crucial to give the correct answer, since the operands are switched in AT&T syntax. In fact, what the code

CMP %eax,%ebx JL L1

interpreted in AT&T syntax does is: "If the contents of EBX are less than the contents of EAX, jump to the label L1" - and not the other way round as mentioned before.

Recommend

  • Sum 1 + 11 + 111… n terms in x86 Assembly
  • python simpleJSONDecoder and complex JSON issue
  • Assembly x86: comparing strings doesn't work
  • python linear equation with Cramer's rule
  • Trying to do case insensitive search in assembly and my code doesn't work
  • Function Pointer Memory Explanation in C
  • X86 Assembly Converting lower-case to uppercase
  • Indexing args as an array in the Windows x86-64 ABI [closed]
  • Sort an array via x86 Assembly (embedded in C++)?? Possible?
  • Unable to allocate memory with mmap in x86 Linux Assembly Language
  • adding 16 bits registers
  • Arithmetic operations in assembly [duplicate]
  • Code accessing continuous L1 cache memory slower than code accessing 3x non-continuous L1 memory
  • Why is my register-constant comparison not working in NASM Assembly?
  • Difference in data alignment in struct vs parameter?
  • There is an assembly code written for Windows API, how to compile it on Linux and run with Wine
  • Assembler - loop with ECX
  • Pulling price from amazon rss feed embedded in description
  • Ruby Array#puts not using overridden implementation?
  • How can I move two dword into one qword?
  • Count how many 1 there are in the odd positions of an array of 32-bit numbers
  • How to use clflush?
  • GNU Assembler (Mac OS X 64-bit): Illegal instruction: 4
  • x86 Assembly: Division Floating Point Exception dividing by 11
  • What does JL mean in at&t syntax?
  • What does 0x4 from cmp 0x4(%esi),%ebx assembly instruction mean?
  • MASM x86 fastcall function declaration… how?
  • Implementing a toupper function in x86 assembly
  • jquery datatable row.add with button and input box
  • Getting address of data variable in x86 AT&T Assembly
  • Loop to check lowercase letter in assembly
  • Print Register in Assembly x86
  • Different behaviour of eax compared to other registers
  • Which Magento Domain Objects Use Layout XML Updates?
  • JNA causing EXCEPTION_ACCESS_VIOLATION?
  • Help me understand this C code (*(void(*) ()) scode) ()
  • Can Compiler Optimize Loop with Variable Length?
  • Why AddRef returns zero
  • Html Anchor text formatting
  • Specify HTTPS for custom WCF Binding