Показать сообщение отдельно
  #6  
Старый 11.03.2013, 15:01
Аватар для vvvch
vvvch vvvch вне форума
Прохожий
 
Регистрация: 28.03.2012
Адрес: г.Боровичи, Новг. обл.
Сообщения: 19
Версия Delphi: Lazarus
Репутация: 10
По умолчанию

Цитата:
Сообщение от icWasya
Ну как вариант -
во первых - команда SHR вырабатывает флаг CF, если "выдвигаемый" разряд равен единице, тогда внутренний цикл можно подсократить - убрать команду сравнения и один переход

Код:
@loop2:    
  SHR AX, 1
  JNB @m2
  XOR AX, CRC_1    
@m2: 
  LOOP @loop2

Во вторых - этот внутренний цикл можно развернуть - просто переписать восемь раз. Тогда уберётся команда LOOP и освободится регистр ECX.
Ну и счётчик внешнего цикла тоже лучше сделать в регистре.


Огромное СПАСИБО!!! Я не очень хорошо знаю ассемлер и долго с этим мучился (пытался подсократить). СПАСИБО!
Ответить с цитированием