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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2021, 02:22   #61
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Я уже говорил что ассемблер это не волшебная палочка. Ассемблер это не более чем жесткий набор машинных инструкций процессора. Только вместо числовых значений этих инструкций используется некая мнемоника. Чисто для удобства пользователя.

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Я просто не совсем понимаю, почему переменная размером с 1 байт не хочет перемещаться в 1 байт регистра
В ассемблере нет никаких "переменных". Там есть только числовые значения заданные явно, значения регистров или значения ячеек в памяти. Вы используете встроенный в Дельфи ассемблер. И используете в этом ассемблере переменные из Дельфи. А тут уже решает компилятор Дельфи.

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
К сожалению, с английским тяжело...
Тогда лучше вам заняться чем-нибудь другим.

Последний раз редактировалось BDA; 12.07.2021 в 19:56.
northener вне форума Ответить с цитированием
Старый 12.07.2021, 19:52   #62
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Чуть-чуть измененный код Pavia из 24 сообщения:
Код:
function UpString4ToLongWord(const s: string): LongWord;
asm
  cmp eax, 0
  jz @exit
  add eax, [eax - 4]
  sub eax, 4
  mov eax, [eax]
  mov ecx, eax
  mov edx, eax
  shr ecx, 2
  shr edx, 1
  and ecx, edx
  and ecx, 10101010h
  shl ecx, 1
  sub eax, ecx 
  bswap eax
  @exit:
end;
Примерно в 8 раз быстрее, чем ваша функция в 51 сообщении.
Цитата:
Сообщение от Kronos913 Посмотреть сообщение
К сожалению, с английским тяжело...
Стоит подтянуть, чтобы иметь возможность читать техническую литературу и мануалы на оригинальном языке, так как не все материалы можно найти в переводе.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 12.07.2021 в 19:55.
BDA на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несколько вопросов Rost93 PHP 18 19.09.2012 19:38
Несколько вопросов shrek1993 Visual C++ 3 05.08.2012 18:53
несколько вопросов по C Horus92 Общие вопросы C/C++ 2 15.11.2009 16:08
несколько вопросов fitc Общие вопросы Delphi 28 14.07.2009 21:20
Несколько Вопросов Дорст Общие вопросы Delphi 3 12.11.2007 09:18