Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > alt.os.assembly > #59 > unrolled thread

Undocumented "REAL" real mode x86 NOP opcodes

Started by"Mike Gonta" <mikegonta@gmail.com>
First post2017-03-26 10:52 -0400
Last post2017-03-26 21:00 +0200
Articles 3 — 2 participants

Back to article view | Back to alt.os.assembly


Contents

  Undocumented "REAL" real mode x86 NOP opcodes "Mike Gonta" <mikegonta@gmail.com> - 2017-03-26 10:52 -0400
    Re: Undocumented "REAL" real mode x86 NOP opcodes "Mike Gonta" <mikegonta@gmail.com> - 2017-03-26 12:32 -0400
      Re: Undocumented "REAL" real mode x86 NOP opcodes "wolfgang kern" <nowhere@never.at> - 2017-03-26 21:00 +0200

#59 — Undocumented "REAL" real mode x86 NOP opcodes

From"Mike Gonta" <mikegonta@gmail.com>
Date2017-03-26 10:52 -0400
SubjectUndocumented "REAL" real mode x86 NOP opcodes
Message-ID<ob8kja$rff$1@gioia.aioe.org>
Undocumented "REAL" real mode x86 NOP opcodes.
There are a series of two byte opcodes (opcode byte plus MOD-REG-R/M
byte) that have a MOD-R/M for a 32 bit register indirect addressing mode.
For example, one of these (of many) is ADD [EAX], AL and the encoding
is 0x00, 0x00. In real mode this instruction (on a 80386 or better)
requires an address override prefix byte (0x67) since there is no
instruction for ADD [AX], AL.
However, the encoding of 0x00, 0x00 is a perfectly valid instruction
in real mode, and in fact is a true "REAL" No OPeration.
Unlike XCHG AX, AX aka 0x90 which is a valid operation (but for the fact
that it has no effect and is thus classified as a NOP), the encoding of
0x00, 0x00 in real mode (without the address override prefix) not only
doesn't add AL to what AX (or EAX) is pointing to but does absolutely
nothing other than advance the program counter.
Of course, these undocumented "REAL" real mode x86 NOP opcodes are
(almost) totally useless.
I did however manage to save 3 bytes (which I didn't need) in my exFAT
boot sector boot loader.


Mike Gonta
look and see - many look but few see

http://mikegonta.com 

[toc] | [next] | [standalone]


#60

From"Mike Gonta" <mikegonta@gmail.com>
Date2017-03-26 12:32 -0400
Message-ID<ob8qfa$169q$1@gioia.aioe.org>
In reply to#59
"Mike Gonta" wrote:
> Undocumented "REAL" real mode x86 NOP opcodes.

I guess I should have waited for April 1 before posting.
Funny thing is IDA Free won't disassemble 0x00, 0x00 as code.


Mike Gonta
look and see - many look but few see

http://mikegonta.com

[toc] | [prev] | [next] | [standalone]


#61

From"wolfgang kern" <nowhere@never.at>
Date2017-03-26 21:00 +0200
Message-ID<ob936g$1mo0$1@gioia.aioe.org>
In reply to#60
Mike Gonta wrote:
>> Undocumented "REAL" real mode x86 NOP opcodes.
 
> I guess I should have waited for April 1 before posting.
> Funny thing is IDA Free won't disassemble 0x00, 0x00 as code.

:) ADD [BX+SI],AL  might be rare used then ?
__
wolfgang 

[toc] | [prev] | [standalone]


Back to top | Article view | alt.os.assembly


csiph-web