assembly - Opcode Constancy rules -
so whenever run command on assembly , view on cpu mode, have segment:offset , right afterwards have opcode resembles command. instance, run command mov ax, 1a1bh
, shows me this:
cs:0005 b81b1a mov ax, 1a1bh
so question is, why 1a1bh
show 1b1a
in opcode?
and whenever run mov ax, dx
shows me this:
cs:0095 8bc2 mov ax, dx
from understood opcode 'mov' b
, , ax
8
, why show 8bc2
?
x86 little-endian, means low byte of multi-byte integer stored @ lower address. hence why bytes of immediate value show in opposite order.
x86 instruction encoding not straightforward - can't pick out various nibbles , "this must mov". if want understand instruction encoding need @ x86 instruction set reference.
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf
assembly x86 opcode
No comments:
Post a Comment