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

Тема в разделе "WASM.ASSEMBLER", создана пользователем Sunzer, 14 июн 2010.

  1. Sunzer

    Sunzer Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    256
    03C0 ADD EAX,EAX
    01C0 ADD EAX,EAX

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

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

    qwe8013 New Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    198
    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

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

    jabocrack New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2010
    Сообщения:
    96
    01 - возможно обращение на запись в память, если адресат m32. И значит, задержка при выполнении инструкции может больше по сравнению с остальными вариантами.
     
  4. s_d_f

    s_d_f New Member

    Публикаций:
    0
    Регистрация:
    15 май 2008
    Сообщения:
    342
    В первом случае eax=4*eax
    Во втором eax=eax+2*ecx

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

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    s_d_f
    и то и другое коды команды add eax,eax
    sib'ом в них и не пахнет
     
  6. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Тысячи их! (c)

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

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Опкод 82, как дружно утверждают мануалы от Intel и AMD, в 64-bit mode отменили.