Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 21:43   #1
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию Ассемблерная вставка

То ли я что-то сильно тупить начал, то ли что-то не то с компилятором в Delphi.
Использую простенькую Ассемблерную вставку:
Код:
label next;
var Res: Word;
begin
  asm
    mov DX, 1
    mov CX, 2
    next:
      shl DX, 1
    loop next
    mov Res, DX
  end;
  WriteLn (Res);
  ReadLn;
end.
Это чисто ради эксперимента. Код должен делать что-то вроде SHL DX, CX.
Логично предположить, что результатом будет 4, но получается 0 (компилировал в Delphi 6).
Что бы выяснить, в чём дело, выполняю программу в пошаговом режиме с открытым окном CPU. Видно, что в момент loop регистр CX, как и должно быть, уменьшается на 1. Но, как он принимает значение 0, управление передаётся не на следующую команду, а опять на метку next, после чего происходит зацикливание (предполагаю, что цикл выполняется порядка 65 000 раз).
Что я сделал не так или в чём тут вообще дело?
Arigato на форуме Ответить с цитированием
Старый 25.10.2009, 21:47   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Только отправил сообщение и понял, что это я ступил. Надо было указывать mov ECX, 2
Arigato на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка символов Senjja Microsoft Office Word 14 19.12.2013 14:52
вставка в массив Ananim-Pbl6ak Паскаль, Turbo Pascal, PascalABC.NET 0 01.06.2009 14:23
Почему отличаются результаты (Ассемблерная вставка в С++)? Объясните Vasiliusis Общие вопросы C/C++ 3 13.11.2008 19:17
Вставка слов )Игнат( Общие вопросы Delphi 1 16.03.2008 21:58
! Вставка текста ! ♠STO♠ Общие вопросы Delphi 2 30.08.2007 17:05