Ассемблер - петля с ECX - PullRequest
       2

Ассемблер - петля с ECX

0 голосов
/ 23 марта 2012

как мы знаем, инструкция loop X переходит X до ECX = 0.

Мой вопрос - Что сначала делает инструкция цикла: уменьшить ECX или проверить, не ECX == 0.

То есть, что из перечисленного ниже является corect

first

   ECX = ECX - 1;
   if ECX > 0
       go to X

second

   if ECX > 0 {
       ECX = ECX - 1;
       fo to x; }

Спасибо.

1 Ответ

3 голосов
/ 23 марта 2012

Первый. Из руководства Intel 2А:

Каждый раз, когда выполняется инструкция LOOP, регистр счетчика уменьшается, а затем проверяется на 0. Если счетчик равен 0, цикл прерывается и выполнение программы продолжается инструкцией, следующей за инструкцией LOOP. Если счет не равен нулю, выполняется ближний переход к операнду назначения (цели), который предположительно инструкция в начале цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...