• (16 bit) x86 Assembler lessons?

    From Bob Worm@21:1/205 to All on Wednesday, May 28, 2025 16:21:58
    Ey up, all.

    I've been rooting through some old 16 bit x86 code and I now realise I've been doing ARM for so long that x86 has become like a foreign language to me. I'm OK with the normal MOVs and arithmetic stuff but once I get into more obscure opcodes, particularly ones that assume their operands are in a certain registers, I soon end up with 50 tabs open. There seems to be little consistency in where the operands need to be instruction by instruction, maybe there's a rule I'm just not seeing? Or maybe my brain can only handle reduced instruction sets these days :)

    Can anyone recommend a decent resource to get me back up to speed (it's only been 30 years)? I have a couple of train / plane journeys coming up so something downloadable would be ideal.

    Thanks in advance,

    BobW
    --- SBBSecho 3.25-Linux
    * Origin: >>> Magnum BBS <<< - magnumbbs.net (21:1/205)
  • From tenser@21:1/101 to Bob Worm on Thursday, May 29, 2025 04:32:11
    On 28 May 2025 at 04:21p, Bob Worm pondered and said...

    Can anyone recommend a decent resource to get me back up to speed (it's only been 30 years)? I have a couple of train / plane journeys coming up so something downloadable would be ideal.

    For 16-bit code, specifically? Bitsavers probably has a copy of
    the original 8086 programmer's reference manual, which will cover
    most of the instruction set. See
    https://bitsavers.org/components/intel/8086/

    If you're looking for something a bit more modern, then chapter
    2 of volume 2A of the Intel SDM is pretty good. https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm. html

    --- Mystic BBS v1.12 A48 (Linux/64)
    * Origin: Agency BBS | Dunedin, New Zealand | agency.bbs.nz (21:1/101)
  • From Bob Worm@21:1/205 to tenser on Wednesday, May 28, 2025 20:52:34
    Re: Re: (16 bit) x86 Assembler lessons?
    By: tenser to Bob Worm on Thu May 29 2025 04:32:11

    Hi, tenser.

    For 16-bit code, specifically?

    Yup, the code I'm looking at is all 16 bit DOS.

    Bitsavers probably has a copy of
    the original 8086 programmer's reference manual, which will cover
    most of the instruction set. See https://bitsavers.org/components/intel/8086/

    Yes, a quick flick through that archive very quickly turned up an overview of what each register is for and some other really useful stuff. That's exactly the kind of thing I was hoping for.

    Thanks very much!

    BobW
    --- SBBSecho 3.25-Linux
    * Origin: >>> Magnum BBS <<< - magnumbbs.net (21:1/205)
  • From tenser@21:1/101 to Bob Worm on Friday, May 30, 2025 03:52:33
    On 28 May 2025 at 08:52p, Bob Worm pondered and said...

    For 16-bit code, specifically?

    Yup, the code I'm looking at is all 16 bit DOS.

    Bitsavers probably has a copy of
    the original 8086 programmer's reference manual, which will cover
    most of the instruction set. See https://bitsavers.org/components/intel/8086/

    Yes, a quick flick through that archive very quickly turned up an
    overview of what each register is for and some other really useful
    stuff. That's exactly the kind of thing I was hoping for.

    Great! Happy to hear it.

    --- Mystic BBS v1.12 A48 (Linux/64)
    * Origin: Agency BBS | Dunedin, New Zealand | agency.bbs.nz (21:1/101)