0

I am trying to understand 8086 instruction encoding. Even though I found a general instruction and a bulky reference I still don't get it.

Could you please explain me how the following "translations" from byte data are done?

Thanks in advance!

48 -> dec ax

EB0D -> jmp short 0xf

642120 -> and [fs:bx+si],sp
muffel
  • 505
  • 1
  • 5
  • 17
  • Why don't you check instead [official manuals from Intel](http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html)? Instruction encoding is explained perfectly there. – m0skit0 Feb 22 '12 at 09:12

2 Answers2

0

Your disassembler shows JMP SHORT offset from beginning of instruction when actual JMP SHORT counts from byte after instruction. Maybe you need other disassembler which does good decoding.

ZaB
  • 2,429
  • 1
  • 16
  • 9
0

An (or this) unconditional jump is followed by data, either real data or alignment data. For 8086, 2 or 4 is a good alignment, so the next instruction could start at the 21 or 20 or beyond that.

ott--
  • 2,201
  • 1
  • 15
  • 15
  • Not to nitpick, but 64h is not a prefix byte on the 8086. At least not according to: http://www.electronicsandbooks.com/eab1/manual/Electronic%20Component%20Databook%20Datasheet/Brand/Intel/Databook/1979%20Intel%20The%208086%20Family%20Users%20Manual%20197910%20[760].pdf page 273 Its 4 years on but still –  May 10 '16 at 21:12