Вставки на асме в СИ

Тема в разделе "WASM.BEGINNERS", создана пользователем red_Human, 5 сен 2009.

  1. red_Human

    red_Human New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2008
    Сообщения:
    182
    Приведите пожалуйста примеры вызова прерываний на асме в проге на СИ. И уж буду совсем благодарен,если приведете пример кода(тоже в виде вставки) использования инструкций умножения и деления
     
  2. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    red_Human
    для начала надо сказать, хотя бы каким компилятором пользуешься...везде синтаксис разный
     
  3. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    _asm
    {
    mov eax, 0xBAADFOOD
    shr eax, 1 //eax = eax/2
    shr eax, 2 //eax = eax/4
    shr eax, 3 //eax = eax/8

    int 3 //interrupt

    mov eax, 12
    mov ecx, 3
    xor edx, edx
    div ecx //eax = 12 / 3
    };
     
  4. red_Human

    red_Human New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2008
    Сообщения:
    182
    А извиняюсь VC++6.0
     
  5. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    умножение


    _asm
    {
    mov eax, 12
    mov ecx, 3
    xor edx, edx
    mul ecx //eax = 12*3


    mov eax, 12
    mov ecx, 3
    imul eax, ecx, eax //eax = 12 * 3
    };
     
  6. red_Human

    red_Human New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2008
    Сообщения:
    182
    Пасибо!!!
     
  7. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    работа с переменными


    unsigned short a, b, c;
    ....

    _asm
    {

    movzx eax, word ptr [a]
    movzx ecx, word ptr
    xor edx, edx
    mul ecx
    mov word ptr [c], cx //c = a * b

    };
     
  8. intel_x128

    intel_x128 New Member

    Публикаций:
    0
    Регистрация:
    17 май 2009
    Сообщения:
    345
    mov word ptr [c], ax //c = a * b

    вот так правильно )))
    вверху ощибсьо малость в последней строчке )))
     
  9. FlatL1ne

    FlatL1ne FlatL1ne

    Публикаций:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    34
    Адрес:
    Underground
    А для Dev C++ как надо?
     
  10. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Dev C++ это не компилятор.
     
  11. AndreyMust19

    AndreyMust19 New Member

    Публикаций:
    0
    Регистрация:
    20 окт 2008
    Сообщения:
    714
    _asm
    А чем он от __asm отличается?
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    intel_x128
    точка с запятой после блока __asm { } не нужна.
    AndreyMust19
    по-моему, ничем
     
  13. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    http://cboard.cprogramming.com/brief-history-cprogramming-com/48498-_asm-__asm.html
     
  14. 10ton

    10ton New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2007
    Сообщения:
    32
    а если на русском инструкция подобного рода?
     
  15. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    10ton
    Тогда перед прочтением её нужно обязательно перевести на английский.
     
  16. 10ton

    10ton New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2007
    Сообщения:
    32
    я не то имел ввиду :lol:
    хотел спросить ЕСТЬ ли на русском такая инструкция а то на инглише не очень понятно, люблю когда подробно пишут и на родном языке )