From b6d438da8d3d2b73084e7085b41e917d882da9f9 Mon Sep 17 00:00:00 2001 From: PoliEcho Date: Mon, 7 Jul 2025 13:23:36 +0000 Subject: [PATCH] Update README.md --- README.md | 174 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ee3386e..a369363 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,179 @@ | x87 CW | x87 control word | Yes | -### additional resources +## Instructions + +### Conditional JUMP Instructions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Instruction Description signed-ness Flags short
jump
opcodes
near
jump
opcodes
JO Jump if overflow   OF = 1 70 0F 80
JNO Jump if not overflow   OF = 0 71 0F 81
JS Jump if sign   SF = 1 78 0F 88
JNS Jump if not sign   SF = 0 79 0F 89
JE
JZ
Jump if equal +
Jump if zero
  ZF = 1 74 0F 84
JNE +
JNZ
Jump if not equal +
Jump if not zero
  ZF = 0 75 0F 85
JB +
JNAE +
JC
Jump if below +
Jump if not above or equal +
Jump if carry
unsigned CF = 1 72 0F 82
JNB +
JAE +
JNC
Jump if not below +
Jump if above or equal +
Jump if not carry
unsigned CF = 0 73 0F 83
JBE +
JNA
Jump if below or equal +
Jump if not above
unsigned CF = 1 or ZF = 1 76 0F 86
JA +
JNBE
Jump if above +
Jump if not below or equal
unsigned CF = 0 and ZF = 0 77 0F 87
JL +
JNGE
Jump if less +
Jump if not greater or equal
signed SF <> OF 7C 0F 8C
JGE +
JNL
Jump if greater or equal +
Jump if not less
signed SF = OF 7D 0F 8D
JLE +
JNG
Jump if less or equal +
Jump if not greater
signed ZF = 1 or SF <> OF 7E 0F 8E
JG +
JNLE
Jump if greater +
Jump if not less or equal
signed ZF = 0 and SF = OF 7F 0F 8F
JP +
JPE
Jump if parity +
Jump if parity even
  PF = 1 7A 0F 8A
JNP +
JPO
Jump if not parity +
Jump if parity odd
  PF = 0 7B 0F 8B
JCXZ +
JECXZ
Jump if %CX register is 0 +
Jump if %ECX register is 0
  %CX = 0 +
%ECX = 0
E3  
+Source: [Intel x86 JUMP quick reference](http://unixwiz.net/techtips/x86-jumps.html) + +## additional resources [Linux syscalls](https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/) [System V AMD64 ABI](https://refspecs.linuxbase.org/elf/x86_64-abi-0.99.pdf) [Getting arguments](https://github.com/tonyOreglia/argument-counter/wiki/x86-64-Linux-Assembly-Part-1:-Printing-Command-Line-Arguments)