Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > alt.os.assembly > #59 > unrolled thread
| Started by | "Mike Gonta" <mikegonta@gmail.com> |
|---|---|
| First post | 2017-03-26 10:52 -0400 |
| Last post | 2017-03-26 21:00 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to alt.os.assembly
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
| From | "Mike Gonta" <mikegonta@gmail.com> |
|---|---|
| Date | 2017-03-26 10:52 -0400 |
| Subject | Undocumented "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]
| From | "Mike Gonta" <mikegonta@gmail.com> |
|---|---|
| Date | 2017-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]
| From | "wolfgang kern" <nowhere@never.at> |
|---|---|
| Date | 2017-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