Машинные коды

Discussion in 'WASM.ASSEMBLER' started by Sunzer, Jun 14, 2010.

  1. Sunzer

    Sunzer Member

    Blog Posts:
    0
    03C0 ADD EAX,EAX
    01C0 ADD EAX,EAX

    01C8 ADD EAX,ECX
    03C1 ADD EAX,ECX

    В чем отличия, кроме как порядок операндов?
     
  2. qwe8013

    qwe8013 New Member

    Blog Posts:
    0
    03h - add r32,r/m32
    01h - add r/m32,r32

    add r32,r32 можно закодировать обоими опкодами.
    см. Intel® 64 and IA-32 Architectures
    Software Developer’s Manual
    Volume 2A:
    Instruction Set Reference, A-M

    Code (Text):
    1. В чем отличия
    по сути не отличаются ничем.
     
  3. jabocrack

    jabocrack New Member

    Blog Posts:
    0
    01 - возможно обращение на запись в память, если адресат m32. И значит, задержка при выполнении инструкции может больше по сравнению с остальными вариантами.
     
  4. s_d_f

    s_d_f New Member

    Blog Posts:
    0
    В первом случае eax=4*eax
    Во втором eax=eax+2*ecx

    Только какой в этом смысёл?
     
  5. max7C4

    max7C4 New Member

    Blog Posts:
    0
    s_d_f
    и то и другое коды команды add eax,eax
    sib'ом в них и не пахнет
     
  6. PSR1257

    PSR1257 New Member

    Blog Posts:
    0
    Тысячи их! (c)

    Code (Text):
    1. 80C1 7F        ADD CL,7F
    2. 82C1 7F        ADD CL,7F
     
  7. diamond

    diamond New Member

    Blog Posts:
    0
    Опкод 82, как дружно утверждают мануалы от Intel и AMD, в 64-bit mode отменили.