The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,854 other subscribers

Archive for the ‘Development’ Category

MySQL: Row Literals | Die wunderbare Welt von Isotopp

Posted by jpluimers on 2025/01/07

For my link archive: [Wayback/Archive] MySQL: Row Literals | Die wunderbare Welt von Isotopp

Question on the Libera/#mysql IRC channel:
Is there a way to split a simple select into multiple returned rows? For example, select 1, 2, 3 to be returned as rows?
This is actually asking for a table literal notation. I know of four ways to construct a table literal in MySQL:

They are based on UNION ALL, JSON_TABLE and VALUES statement (the latter in two forms). I knew about the first (which I used in other database environments), not about the others.

Read the rest of this entry »

Posted in Database Development, Development, MySQL, SQL | Leave a Comment »

Getting the list of vscode extensions when it upgraded to a version not supported on the platform any more (and packing your extensions in a .vsix list package)

Posted by jpluimers on 2025/01/02

While moving from ancient hardware to more modern hardware, somehow Visual Studio Code had updated itself to a version that didn’t support the underlying operating system any more. Bummer!

Normally I would get the list of extensions through this command (which is listed in many places, like in my blog post How can you export the Visual Studio Code extension list? (via: Stack Overflow), but also for instance answered in the below question by [WaybackSave/Archive] Benny Ng):

code --list-extensions

That obviously would not work, but thanks to [Wayback/Archive] How can you export the Visual Studio Code extension list? – Stack Overflow (thanks [Wayback/Archive] Andrew and [Wayback/Archive] MarkP) I now could do this:

ls -alh ~/.vscode/extensions

(That directory obviously is also in various forms of official documentation like in the the Your Extensions Folder section of [Wayback/Archive] Publishing Extensions | Visual Studio Code Extension API.

A comment to the above question pointed me to an interesting way to automate extension installs on various machines: pack the installed extension list into its own .vsix file:

Read the rest of this entry »

Posted in Development, Software Development, vscode Visual Studio Code | Leave a Comment »

Modifying your receiver/amplifier: Converting Phono Inputs to Line-Level

Posted by jpluimers on 2025/01/02

For my link archive: [Wayback/Archive.is] Converting Phono Inputs to Line-Level

It shows for some receiver models how to have the Phono input signals bypass the preamplifier (preamp) so they effectively become Line level inputs and there is no need for an extra devices that undoes RIAA equalisation.

If that fails, then you need something like the [Wayback/Archive.is] Line level to phono input converter diagram:

Or get you a [Wayback/Archive.is] iRIAA2 – Inverse RIAA Filter – Hagerman Audio Labs

Read the rest of this entry »

Posted in Development, Hardware, Hardware Development, Power User | Leave a Comment »

Old programming books had cool little “puns” in their references, modern lack them in their indices. On the why, and history of them.

Posted by jpluimers on 2025/01/01

I wrote a two earlier blog posts around puns in programming book indices before:

  1. the 1992 Turbo Pascal 7.0 Language Guide having both entry in the manual about Recursion (“recursive loop, see recursive loop”) which of course is similar to “infinite loop” and entries for “infinite loop See loop, infinite” and “loop, infinite See infinite loop”.
  2. infinite loop in “LaTeX: A Document Preparation System” by Leslie Lamport, printed in 1994.

In the last one, I promised to list more occurrences which I now finally had time for to do.

But let me first elaborate more on the observation that modern computer books (like for instance on C# and Delphi beyond version 1) lack these kinds of index pun.

On the Delphi side, the index entry joke for recursion got removed no later than Delphi 3 (I am still looking for a Delphi 2 version of the Object Pascal Language Guide, see further below) even before the book being fully redone electronically and the index pages generation being automated in

I think I even understand why that is: the process of creating of indices. By the start of this century, more and more indices were automatically being generated and for the last 2 decades or so, all of them are. Back in the days however, indices were mostly done by hand. Nowadays, with everything automated, it is actually pretty tricky in most environments to add such an “infinite loop” index entry like in the Turbo Pascal book, as it would require two things at once:

Read the rest of this entry »

Posted in .NET, C, C#, C++, Conference Topics, Conferences, Delphi, Delphi 1, Delphi 2, Development, EKON, Event, History, LaTeX, LifeHacker, LISP, Mathematics, Pascal, Perl, PL/I (a.k.a. PL/1), Power User, science, Software Development, Turbo Pascal, Typesetting | Tagged: , | 4 Comments »

Uncommon Uses of Python in Commonly Used Libraries

Posted by jpluimers on 2025/01/01

For my link archive as it will help me when ready to step up my Python skills: [Wayback/Archive] Uncommon Uses of Python in Commonly Used Libraries.

Via: [Wayback/Archive] Julia Evans on Twitter: “i love this kind of researchy blog post (“i read a bunch of python libraries, here’s what i learned!”)

Read the rest of this entry »

Posted in Development, Python, Scripting, Software Development | Leave a Comment »

Pentium FDIV bug – 25 years ago; Ken Shirriff reverse engineerded the cause under a microsope

Posted by jpluimers on 2024/12/31

A small introduction is the Pentium FDIV bug – Wikipedia article which already has some of the highlights..

Ken Shirriff however went all the way in, and used a microscope to focus in on to the actual cause.

He wrote two Mastodon threads on it watching (most recent first, with a link to his blog post) making a good year’s end read:

And there is of course this, that predated his microscope work [Wayback/Archive] Ken Shirriff: “I recently saw an amazing Navajo rug…” – OldBytes Space – Mastodon Read the rest of this entry »

Posted in 8086, Development, Hardware Development, History | Leave a Comment »

A truckload of links which I need for some Bookmarklets work

Posted by jpluimers on 2024/12/31

A while ago, browser tabs were overflowing again so I first mad the list of links with quotes below, then discovered there is a template for many browser tabs open at [Wayback/Archive] To many browser tabs open Meme Generator – Imgflip

One of the reasons is that the WordPress “Press This” bookmarklet is very slow and also flaky at escaping HTML (for instance the below html – Why shouldn’t &amp;apos; be used to escape single quotes? – Stack Overflow sometimes becomes html – Why shouldn’t <code>'</code> be used to escape single quotes? – Stack Overflow in [Wayback/Archive] Press This – WordPress plugin | WordPress.org especially when running it from Archive Today archived pages).

So here we go: Read the rest of this entry »

Posted in Bookmarklet, Development, HTML, HTML5, JavaScript/ECMAScript, Power User, Scripting, Software Development, Web Browsers, Web Development | Leave a Comment »

Belastingdienst: Postadres doorgeven

Posted by jpluimers on 2024/12/30

Edit 20250213: let op! Op MacOS met Preview: vul niet het formulier als formulier in, maar gebruik text-annotations voor de tekstvelden. Want anders ben je met printen 80% van je informatie kwijt

Edit 20250830: vul bij “Uw huidige adres” het nieuwe adres in (de betekenis van “Uw huidige adres” is bij invullen voor het verhuizen anders dan na het verhuizen; de belastingdienst gaat er vanuit dat het na het verhuizen wordt ingevuld)

Zie screenshots onderaan de blogpost afkomstig van [WaybackSave/Archive] Jeroen Wiert Pluimers @wiert@mastodon.social on X: “Screenshots: – links met … van @Belastingdienst ingevuld om een postadres door te geven – rechts wat er uit de printer komt (of print naar PDF) MacOS. Laatste updates. Eerste screenshot: pagina 1 Tweede screenshot: pagina 2 #WhyCantWeHaveNiceThings “

Screenshots:

– links met https://download.belastingdienst.nl/belastingdienst/docs/postadres_doorgeven_al0791z3fol.pdf van @Belastingdienst ingevuld om een postadres door te geven
– rechts wat er uit de printer komt (of print naar PDF)

MacOS. Laatste updates.

Eerste screenshot: pagina 1
Tweede screenshot: pagina 2

#WhyCantWeHaveNiceThings


Originele tekst

[Wayback/Archive] Postadres doorgeven

[Wayback/Archive] download.belastingdienst.nl/belastingdienst/docs/postadres_doorgeven_al0791z3fol.pdf [Wayback PDF View/PDF View]

U kunt dit formulier alleen gebruiken als u in Nederland woont of als uw onderneming, stichting of vereniging in Nederland is gevestigd.
U kunt het formulier gebruiken in de volgende situaties:
  • U wilt onze post ontvangen op een ander adres dan uw woonadres of vestigingsadres.
  • U wilt voor onze post een ander postadres doorgeven.
  • U wilt uw postadres weer veranderen naar uw woonadres of vestigingsadres.

Read the rest of this entry »

Posted in Barcode, Development, KIX, LifeHacker, Power User, RM4SCC, Software Development | Tagged: | Leave a Comment »

HInvoke and avoiding PInvoke | drakonia’s blog

Posted by jpluimers on 2024/12/26

On my research list [Wayback/Archive] HInvoke and avoiding PInvoke | drakonia’s blog.

A very minimalistic approach of calling .net runtime functions or accessing properties using only hashes as identifiers. It does not leave any strings or import references since we dynamically resolve the required member from the mscorlib assembly on runtime.

Read the rest of this entry »

Posted in .NET, C#, Development, Encryption, Hashing, Power User, Red team, Security, Software Development | Tagged: , , , , , , , | Leave a Comment »

x86 assembly – Difference between JE/JNE and JZ/JNZ – Stack Overflow

Posted by jpluimers on 2024/12/25

This brought back memories of some 40 years ago during my first steps learning x86 assembly language, realising the first comment: [Wayback/Archive] assembly – Difference between JE/JNE and JZ/JNZ – Stack Overflow

Q

In x86 assembly code, are JE and JNE exactly the same as JZ and JNZ?

C

Long answer: yes.

C

TL:DR: same machine operation, different semantic meaning. Just like jb / jc / jnae all testing CF=1. See felixcloutier.com/x86/jcc

Merry X-mas everyone!

And thanks [Wayback/Archive] Daniel Hanrahan for asking, [Wayback/Archive] Hans Passant and [Wayback/Archive] Peter Cordes for commenting.

Be sure to read the rest of the comments and answers to read on the WHY these instructions are the same. That insight made me realise I was finally understanding the x86 architecture at a deeper level.

Related:

  • [WaybackSave/Archive] Intel® 64 and IA-32 Architectures Software Developer’s Manual Combined Volumes 2A, 2B, 2C, and 2D: Instruction Set Reference, A-Z
  • [Wayback/Archive] Jcc — Jump if Condition Is Met

    Sorted by Opcode column (with a little bit of help from Excel, Notepad++ and [Wayback/Archive] HTML Tables generator – TablesGenerator.com; then bolded or italicised the Description column of equivalent entries:

    Opcode Instruction Op/En 64-Bit Mode Compat/Leg Mode Description
    0F 80 cd JO rel32 D Valid Valid Jump near if overflow (OF=1).
    0F 80 cw JO rel16 D N.S. Valid Jump near if overflow (OF=1). Not supported in 64-bit mode.
    0F 81 cd JNO rel32 D Valid Valid Jump near if not overflow (OF=0).
    0F 81 cw JNO rel16 D N.S. Valid Jump near if not overflow (OF=0). Not supported in 64-bit mode.
    0F 82 cd JB rel32 D Valid Valid Jump near if below (CF=1).
    0F 82 cd JC rel32 D Valid Valid Jump near if carry (CF=1).
    0F 82 cd JNAE rel32 D Valid Valid Jump near if not above or equal (CF=1).
    0F 82 cw JB rel16 D N.S. Valid Jump near if below (CF=1). Not supported in 64-bit mode.
    0F 82 cw JC rel16 D N.S. Valid Jump near if carry (CF=1). Not supported in 64-bit mode.
    0F 82 cw JNAE rel16 D N.S. Valid Jump near if not above or equal (CF=1). Not supported in 64-bit mode.
    0F 83 cd JAE rel32 D Valid Valid Jump near if above or equal (CF=0).
    0F 83 cd JNB rel32 D Valid Valid Jump near if not below (CF=0).
    0F 83 cd JNC rel32 D Valid Valid Jump near if not carry (CF=0).
    0F 83 cw JAE rel16 D N.S. Valid Jump near if above or equal (CF=0). Not supported in 64-bit mode.
    0F 83 cw JNB rel16 D N.S. Valid Jump near if not below (CF=0). Not supported in 64-bit mode.
    0F 83 cw JNC rel16 D N.S. Valid Jump near if not carry (CF=0). Not supported in 64-bit mode.
    0F 84 cd JE rel32 D Valid Valid Jump near if equal (ZF=1).
    0F 84 cd JZ rel32 D Valid Valid Jump near if 0 (ZF=1).
    0F 84 cd JZ rel32 D Valid Valid Jump near if 0 (ZF=1).
    0F 84 cw JE rel16 D N.S. Valid Jump near if equal (ZF=1). Not supported in 64-bit mode.
    0F 84 cw JZ rel16 D N.S. Valid Jump near if 0 (ZF=1). Not supported in 64-bit mode.
    0F 84 cw JZ rel16 D N.S. Valid Jump near if 0 (ZF=1). Not supported in 64-bit mode.
    0F 85 cd JNE rel32 D Valid Valid Jump near if not equal (ZF=0).
    0F 85 cd JNZ rel32 D Valid Valid Jump near if not zero (ZF=0).
    0F 85 cw JNE rel16 D N.S. Valid Jump near if not equal (ZF=0). Not supported in 64-bit mode.
    0F 85 cw JNZ rel16 D N.S. Valid Jump near if not zero (ZF=0). Not supported in 64-bit mode.
    0F 86 cd JBE rel32 D Valid Valid Jump near if below or equal (CF=1 or ZF=1).
    0F 86 cd JNA rel32 D Valid Valid Jump near if not above (CF=1 or ZF=1).
    0F 86 cw JBE rel16 D N.S. Valid Jump near if below or equal (CF=1 or ZF=1). Not supported in 64-bit mode.
    0F 86 cw JNA rel16 D N.S. Valid Jump near if not above (CF=1 or ZF=1). Not supported in 64-bit mode.
    0F 87 cd JA rel32 D Valid Valid Jump near if above (CF=0 and ZF=0).
    0F 87 cd JNBE rel32 D Valid Valid Jump near if not below or equal (CF=0 and ZF=0).
    0F 87 cw JA rel16 D N.S. Valid Jump near if above (CF=0 and ZF=0). Not supported in 64-bit mode.
    0F 87 cw JNBE rel16 D N.S. Valid Jump near if not below or equal (CF=0 and ZF=0). Not supported in 64-bit mode.
    0F 88 cd JS rel32 D Valid Valid Jump near if sign (SF=1).
    0F 88 cw JS rel16 D N.S. Valid Jump near if sign (SF=1). Not supported in 64-bit mode.
    0F 89 cd JNS rel32 D Valid Valid Jump near if not sign (SF=0).
    0F 89 cw JNS rel16 D N.S. Valid Jump near if not sign (SF=0). Not supported in 64-bit mode.
    0F 8A cd JP rel32 D Valid Valid Jump near if parity (PF=1).
    0F 8A cd JPE rel32 D Valid Valid Jump near if parity even (PF=1).
    0F 8A cw JP rel16 D N.S. Valid Jump near if parity (PF=1). Not supported in 64-bit mode.
    0F 8A cw JPE rel16 D N.S. Valid Jump near if parity even (PF=1). Not supported in 64-bit mode.
    0F 8B cd JNP rel32 D Valid Valid Jump near if not parity (PF=0).
    0F 8B cd JPO rel32 D Valid Valid Jump near if parity odd (PF=0).
    0F 8B cw JNP rel16 D N.S. Valid Jump near if not parity (PF=0). Not supported in 64-bit mode.
    0F 8B cw JPO rel16 D N.S. Valid Jump near if parity odd (PF=0). Not supported in 64-bit mode.
    0F 8C cd JL rel32 D Valid Valid Jump near if less (SF≠ OF).
    0F 8C cd JNGE rel32 D Valid Valid Jump near if not greater or equal (SF≠ OF).
    0F 8C cw JL rel16 D N.S. Valid Jump near if less (SF≠ OF). Not supported in 64-bit mode.
    0F 8C cw JNGE rel16 D N.S. Valid Jump near if not greater or equal (SF≠ OF). Not supported in 64-bit mode.
    0F 8D cd JGE rel32 D Valid Valid Jump near if greater or equal (SF=OF).
    0F 8D cd JNL rel32 D Valid Valid Jump near if not less (SF=OF).
    0F 8D cw JGE rel16 D N.S. Valid Jump near if greater or equal (SF=OF). Not supported in 64-bit mode.
    0F 8D cw JNL rel16 D N.S. Valid Jump near if not less (SF=OF). Not supported in 64-bit mode.
    0F 8E cd JLE rel32 D Valid Valid Jump near if less or equal (ZF=1 or SF≠ OF).
    0F 8E cd JNG rel32 D Valid Valid Jump near if not greater (ZF=1 or SF≠ OF).
    0F 8E cw JLE rel16 D N.S. Valid Jump near if less or equal (ZF=1 or SF≠ OF). Not supported in 64-bit mode.
    0F 8E cw JNG rel16 D N.S. Valid Jump near if not greater (ZF=1 or SF≠ OF). Not supported in 64-bit mode.
    0F 8F cd JG rel32 D Valid Valid Jump near if greater (ZF=0 and SF=OF).
    0F 8F cd JNLE rel32 D Valid Valid Jump near if not less or equal (ZF=0 and SF=OF).
    0F 8F cw JG rel16 D N.S. Valid Jump near if greater (ZF=0 and SF=OF). Not supported in 64-bit mode.
    0F 8F cw JNLE rel16 D N.S. Valid Jump near if not less or equal (ZF=0 and SF=OF). Not supported in 64-bit mode.
    70 cb JO rel8 D Valid Valid Jump short if overflow (OF=1).
    71 cb JNO rel8 D Valid Valid Jump short if not overflow (OF=0).
    72 cb JB rel8 D Valid Valid Jump short if below (CF=1).
    72 cb JC rel8 D Valid Valid Jump short if carry (CF=1).
    72 cb JNAE rel8 D Valid Valid Jump short if not above or equal (CF=1).
    73 cb JAE rel8 D Valid Valid Jump short if above or equal (CF=0).
    73 cb JNB rel8 D Valid Valid Jump short if not below (CF=0).
    73 cb JNC rel8 D Valid Valid Jump short if not carry (CF=0).
    74 cb JE rel8 D Valid Valid Jump short if equal (ZF=1).
    74 cb JZ rel8 D Valid Valid Jump short if zero (ZF = 1).
    75 cb JNE rel8 D Valid Valid Jump short if not equal (ZF=0).
    75 cb JNZ rel8 D Valid Valid Jump short if not zero (ZF=0).
    76 cb JBE rel8 D Valid Valid Jump short if below or equal (CF=1 or ZF=1).
    76 cb JNA rel8 D Valid Valid Jump short if not above (CF=1 or ZF=1).
    77 cb JA rel8 D Valid Valid Jump short if above (CF=0 and ZF=0).
    77 cb JNBE rel8 D Valid Valid Jump short if not below or equal (CF=0 and ZF=0).
    78 cb JS rel8 D Valid Valid Jump short if sign (SF=1).
    79 cb JNS rel8 D Valid Valid Jump short if not sign (SF=0).
    7A cb JP rel8 D Valid Valid Jump short if parity (PF=1).
    7A cb JPE rel8 D Valid Valid Jump short if parity even (PF=1).
    7B cb JNP rel8 D Valid Valid Jump short if not parity (PF=0).
    7B cb JPO rel8 D Valid Valid Jump short if parity odd (PF=0).
    7C cb JL rel8 D Valid Valid Jump short if less (SF≠ OF).
    7C cb JNGE rel8 D Valid Valid Jump short if not greater or equal (SF≠ OF).
    7D cb JGE rel8 D Valid Valid Jump short if greater or equal (SF=OF).
    7D cb JNL rel8 D Valid Valid Jump short if not less (SF=OF).
    7E cb JLE rel8 D Valid Valid Jump short if less or equal (ZF=1 or SF≠ OF).
    7E cb JNG rel8 D Valid Valid Jump short if not greater (ZF=1 or SF≠ OF).
    7F cb JG rel8 D Valid Valid Jump short if greater (ZF=0 and SF=OF).
    7F cb JNLE rel8 D Valid Valid Jump short if not less or equal (ZF=0 and SF=OF).
    E3 cb JCXZ rel8 D N.E. Valid Jump short if CX register is 0.
    E3 cb JECXZ rel8 D Valid Valid Jump short if ECX register is 0.
    E3 cb JRCXZ rel8 D Valid N.E. Jump short if RCX register is 0.

    Original table from the above Jcc link:

    Opcode Instruction Op/En 64-Bit Mode Compat/Leg Mode Description
    77 cb JA rel8 D Valid Valid Jump short if above (CF=0 and ZF=0).
    73 cb JAE rel8 D Valid Valid Jump short if above or equal (CF=0).
    72 cb JB rel8 D Valid Valid Jump short if below (CF=1).
    76 cb JBE rel8 D Valid Valid Jump short if below or equal (CF=1 or ZF=1).
    72 cb JC rel8 D Valid Valid Jump short if carry (CF=1).
    E3 cb JCXZ rel8 D N.E. Valid Jump short if CX register is 0.
    E3 cb JECXZ rel8 D Valid Valid Jump short if ECX register is 0.
    E3 cb JRCXZ rel8 D Valid N.E. Jump short if RCX register is 0.
    74 cb JE rel8 D Valid Valid Jump short if equal (ZF=1).
    7F cb JG rel8 D Valid Valid Jump short if greater (ZF=0 and SF=OF).
    7D cb JGE rel8 D Valid Valid Jump short if greater or equal (SF=OF).
    7C cb JL rel8 D Valid Valid Jump short if less (SF≠ OF).
    7E cb JLE rel8 D Valid Valid Jump short if less or equal (ZF=1 or SF≠ OF).
    76 cb JNA rel8 D Valid Valid Jump short if not above (CF=1 or ZF=1).
    72 cb JNAE rel8 D Valid Valid Jump short if not above or equal (CF=1).
    73 cb JNB rel8 D Valid Valid Jump short if not below (CF=0).
    77 cb JNBE rel8 D Valid Valid Jump short if not below or equal (CF=0 and ZF=0).
    73 cb JNC rel8 D Valid Valid Jump short if not carry (CF=0).
    75 cb JNE rel8 D Valid Valid Jump short if not equal (ZF=0).
    7E cb JNG rel8 D Valid Valid Jump short if not greater (ZF=1 or SF≠ OF).
    7C cb JNGE rel8 D Valid Valid Jump short if not greater or equal (SF≠ OF).
    7D cb JNL rel8 D Valid Valid Jump short if not less (SF=OF).
    7F cb JNLE rel8 D Valid Valid Jump short if not less or equal (ZF=0 and SF=OF).
    71 cb JNO rel8 D Valid Valid Jump short if not overflow (OF=0).
    7B cb JNP rel8 D Valid Valid Jump short if not parity (PF=0).
    79 cb JNS rel8 D Valid Valid Jump short if not sign (SF=0).
    75 cb JNZ rel8 D Valid Valid Jump short if not zero (ZF=0).
    70 cb JO rel8 D Valid Valid Jump short if overflow (OF=1).
    7A cb JP rel8 D Valid Valid Jump short if parity (PF=1).
    7A cb JPE rel8 D Valid Valid Jump short if parity even (PF=1).
    7B cb JPO rel8 D Valid Valid Jump short if parity odd (PF=0).
    78 cb JS rel8 D Valid Valid Jump short if sign (SF=1).
    74 cb JZ rel8 D Valid Valid Jump short if zero (ZF = 1).
    0F 87 cw JA rel16 D N.S. Valid Jump near if above (CF=0 and ZF=0). Not supported in 64-bit mode.
    0F 87 cd JA rel32 D Valid Valid Jump near if above (CF=0 and ZF=0).
    0F 83 cw JAE rel16 D N.S. Valid Jump near if above or equal (CF=0). Not supported in 64-bit mode.
    0F 83 cd JAE rel32 D Valid Valid Jump near if above or equal (CF=0).
    0F 82 cw JB rel16 D N.S. Valid Jump near if below (CF=1). Not supported in 64-bit mode.
    0F 82 cd JB rel32 D Valid Valid Jump near if below (CF=1).
    0F 86 cw JBE rel16 D N.S. Valid Jump near if below or equal (CF=1 or ZF=1). Not supported in 64-bit mode.
    0F 86 cd JBE rel32 D Valid Valid Jump near if below or equal (CF=1 or ZF=1).
    0F 82 cw JC rel16 D N.S. Valid Jump near if carry (CF=1). Not supported in 64-bit mode.
    0F 82 cd JC rel32 D Valid Valid Jump near if carry (CF=1).
    0F 84 cw JE rel16 D N.S. Valid Jump near if equal (ZF=1). Not supported in 64-bit mode.
    0F 84 cd JE rel32 D Valid Valid Jump near if equal (ZF=1).
    0F 84 cw JZ rel16 D N.S. Valid Jump near if 0 (ZF=1). Not supported in 64-bit mode.
    0F 84 cd JZ rel32 D Valid Valid Jump near if 0 (ZF=1).
    0F 8F cw JG rel16 D N.S. Valid Jump near if greater (ZF=0 and SF=OF). Not supported in 64-bit mode.
    0F 8F cd JG rel32 D Valid Valid Jump near if greater (ZF=0 and SF=OF).
    0F 8D cw JGE rel16 D N.S. Valid Jump near if greater or equal (SF=OF). Not supported in 64-bit mode.
    0F 8D cd JGE rel32 D Valid Valid Jump near if greater or equal (SF=OF).
    0F 8C cw JL rel16 D N.S. Valid Jump near if less (SF≠ OF). Not supported in 64-bit mode.
    0F 8C cd JL rel32 D Valid Valid Jump near if less (SF≠ OF).
    0F 8E cw JLE rel16 D N.S. Valid Jump near if less or equal (ZF=1 or SF≠ OF). Not supported in 64-bit mode.
    0F 8E cd JLE rel32 D Valid Valid Jump near if less or equal (ZF=1 or SF≠ OF).
    0F 86 cw JNA rel16 D N.S. Valid Jump near if not above (CF=1 or ZF=1). Not supported in 64-bit mode.
    0F 86 cd JNA rel32 D Valid Valid Jump near if not above (CF=1 or ZF=1).
    0F 82 cw JNAE rel16 D N.S. Valid Jump near if not above or equal (CF=1). Not supported in 64-bit mode.
    0F 82 cd JNAE rel32 D Valid Valid Jump near if not above or equal (CF=1).
    0F 83 cw JNB rel16 D N.S. Valid Jump near if not below (CF=0). Not supported in 64-bit mode.
    0F 83 cd JNB rel32 D Valid Valid Jump near if not below (CF=0).
    0F 87 cw JNBE rel16 D N.S. Valid Jump near if not below or equal (CF=0 and ZF=0). Not supported in 64-bit mode.
    0F 87 cd JNBE rel32 D Valid Valid Jump near if not below or equal (CF=0 and ZF=0).
    0F 83 cw JNC rel16 D N.S. Valid Jump near if not carry (CF=0). Not supported in 64-bit mode.
    0F 83 cd JNC rel32 D Valid Valid Jump near if not carry (CF=0).
    0F 85 cw JNE rel16 D N.S. Valid Jump near if not equal (ZF=0). Not supported in 64-bit mode.
    0F 85 cd JNE rel32 D Valid Valid Jump near if not equal (ZF=0).
    0F 8E cw JNG rel16 D N.S. Valid Jump near if not greater (ZF=1 or SF≠ OF). Not supported in 64-bit mode.
    0F 8E cd JNG rel32 D Valid Valid Jump near if not greater (ZF=1 or SF≠ OF).
    0F 8C cw JNGE rel16 D N.S. Valid Jump near if not greater or equal (SF≠ OF). Not supported in 64-bit mode.
    0F 8C cd JNGE rel32 D Valid Valid Jump near if not greater or equal (SF≠ OF).
    0F 8D cw JNL rel16 D N.S. Valid Jump near if not less (SF=OF). Not supported in 64-bit mode.
    0F 8D cd JNL rel32 D Valid Valid Jump near if not less (SF=OF).
    0F 8F cw JNLE rel16 D N.S. Valid Jump near if not less or equal (ZF=0 and SF=OF). Not supported in 64-bit mode.
    0F 8F cd JNLE rel32 D Valid Valid Jump near if not less or equal (ZF=0 and SF=OF).
    0F 81 cw JNO rel16 D N.S. Valid Jump near if not overflow (OF=0). Not supported in 64-bit mode.
    0F 81 cd JNO rel32 D Valid Valid Jump near if not overflow (OF=0).
    0F 8B cw JNP rel16 D N.S. Valid Jump near if not parity (PF=0). Not supported in 64-bit mode.
    0F 8B cd JNP rel32 D Valid Valid Jump near if not parity (PF=0).
    0F 89 cw JNS rel16 D N.S. Valid Jump near if not sign (SF=0). Not supported in 64-bit mode.
    0F 89 cd JNS rel32 D Valid Valid Jump near if not sign (SF=0).
    0F 85 cw JNZ rel16 D N.S. Valid Jump near if not zero (ZF=0). Not supported in 64-bit mode.
    0F 85 cd JNZ rel32 D Valid Valid Jump near if not zero (ZF=0).
    0F 80 cw JO rel16 D N.S. Valid Jump near if overflow (OF=1). Not supported in 64-bit mode.
    0F 80 cd JO rel32 D Valid Valid Jump near if overflow (OF=1).
    0F 8A cw JP rel16 D N.S. Valid Jump near if parity (PF=1). Not supported in 64-bit mode.
    0F 8A cd JP rel32 D Valid Valid Jump near if parity (PF=1).
    0F 8A cw JPE rel16 D N.S. Valid Jump near if parity even (PF=1). Not supported in 64-bit mode.
    0F 8A cd JPE rel32 D Valid Valid Jump near if parity even (PF=1).
    0F 8B cw JPO rel16 D N.S. Valid Jump near if parity odd (PF=0). Not supported in 64-bit mode.
    0F 8B cd JPO rel32 D Valid Valid Jump near if parity odd (PF=0).
    0F 88 cw JS rel16 D N.S. Valid Jump near if sign (SF=1). Not supported in 64-bit mode.
    0F 88 cd JS rel32 D Valid Valid Jump near if sign (SF=1).
    0F 84 cw JZ rel16 D N.S. Valid Jump near if 0 (ZF=1). Not supported in 64-bit mode.
    0F 84 cd JZ rel32 D Valid Valid Jump near if 0 (ZF=1).

--jeroen

Posted in Assembly Language, Development, Software Development, x86 | Leave a Comment »