Цикл for

Тема в разделе "WASM.ASSEMBLER", создана пользователем 777user777, 2 июл 2011.

  1. 777user777

    777user777 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2010
    Сообщения:
    109
    я перевожу программу с C++ на Ассемблер,но не понял как переводить цикл For.
    как это делать? Есть какой нибудь макроос для этого?

    И ещё не понял как переводить код со стрелками(->)
    (например
    Код (Text):
    1. deviceExtension = (PDEVICE_EXTENSION)deviceObject->DeviceExtension
    )
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Изучите как ассемблер так и C++, а то это не дело. Зачем вам что-то переводить, да ещё с такими знаниями?
     
  3. 777user777

    777user777 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2010
    Сообщения:
    109
    я асм и C++ знаю,просто этого не понял.
     
  4. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.549
    Адрес:
    Russia
    in C

    Код (Text):
    1. for (i = 0; i < 100; i++)
    2. {
    3. //тело цикла
    4. }
    in asm (один из вариантов)

    Код (Text):
    1. mov ecx, 100
    2. body:
    3. ;тело цикла
    4. loop body
    777user777
    Прошу вас не создавать больше тем ни в 1 разделе, кроме WASM.BEGINNERS
     
  5. dinoweb

    dinoweb Дмитрий

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    129
    Адрес:
    Россия. Красноярск
    :))) я тоже много чего знаю

    А знаешь про указатели в Си++?
    А про флаги и условные переходы в АСМ?
    К твоему вопросу. Как без этого можно "знать язык"

    "->" - Оператор обращения к элементу (или методу) класса по указателю на класс. Может быть переопределён и использован как угодно.
    Код (Text):
    1. deviceExtension = (PDEVICE_EXTENSION)deviceObject->DeviceExtension
    как-то так:
    Код (Text):
    1. mov ecx, [deviceObject]
    2. mov eax, [ecx + PDEVICE_EXTENSION.DeviceExtension]
    3. mov [deviceExtension], eax
    А вот цикл:
    Код (Text):
    1. for(int i = 0; i < 100; ++i);
    Код (Text):
    1. xor ecx, ecx
    2. @@:
    3. inc ecx
    4. cmp ecx, 100
    5. jb @b
    Изучи языки, а потом занимайся переводом.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    О да. Зачем вам нужно переводить на асм?
     
  7. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.173
    Адрес:
    подполье
    Скампель си-кодес да дизассемблируй, знаток-домашка-не-учена! :)