Почему вредно смешивание операций чтения/записи?

Тема в разделе "WASM.A&O", создана пользователем asmprogrammer, 25 сен 2009.

  1. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Почему вредно смешивание операций чтения/записи?
    например
    почему надо писать

    mov eax,[0]
    mov ebx,[4]
    mov [8],ecx
    mov [16],edx

    чем хуже

    mov eax,[0]
    mov [8],ecx
    mov ebx,[4]
    mov [16],edx

    допустим, что данные есть в кеше.
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Потому что не всегда срабатывает это "допустим" и не все процы особо умные.
     
  3. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
    что-то вроде в 6-й главе было
    http://www.infanata.org/2005/11/10/assembler_v_zadachah_zaszity_informacii.html
     
  4. asmprogrammer

    asmprogrammer New Member

    Публикаций:
    0
    Регистрация:
    25 июл 2009
    Сообщения:
    15
    Есть в официальной документации Интела.
    Связано с тем что чтение блокируется до того как будут известны адреса предыдущих операций записи.

    Assembly/Compiler Coding Rule 52. (M impact, MH generality) Calculate
    store addresses as early as possible to avoid having stores block loads.