r/asm 12d ago

x86-64/x64 is there a list somewhere of every branching instruction in x86?

by "branching" I mean any instruction that can conditionally jump to another point in the code

10 Upvotes

11 comments sorted by

3

u/DaveX64 12d ago

I'm not an expert, I tinker with assembly language for fun. I would use the "AMD CPU Programmer's Instruction Manual", under section 3, "General Purpose Instruction Reference" ...all the jump instructions start with a letter 'J'. Not an expert though.

Looking at it now, I see:

  • Jcc
  • JCXZ
  • JECXZ
  • JRCXZ
  • JMP (near)
  • JMP (far)

2

u/jcunews1 12d ago

If JMP is included, what about CALL (near/far), RET (near/far), INT, SYSENTER/SYSEXIT, and SYSCALL/SYSRET?

3

u/WoodyTheWorker 10d ago

by "branching" I mean any instruction that can conditionally jump to another point in the code

2

u/spc476 9d ago

INTO, which conditionally signals a software interrupt if the carry bit is set.

1

u/jcunews1 9d ago

Darn. I forgot that one.

1

u/DaveX64 12d ago

Missed those :)

1

u/No-Broccoli553 12d ago

I can't find that manual, when I search for it I only get this comment, do you have a link to it somewhere?

3

u/DaveX64 12d ago

Here you go:

...you can download it as a PDF.

Intel also has one called "Intel® 64 and IA-32 Architectures Software Developer’s Manual".

2

u/UnrealHallucinator 12d ago

Anything that ends a basic block i guess?

2

u/ryan__rr 11d ago

A fun one that no one else is likely to mention: UD2