![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 684
|
![]()
На коленке сделал 2 процедуры для превращение LongWord в 2 Word и обратно
Код:
Поскольку большая часть вводимых параметров - константы, их можно вычислить заранее и загнать в секцию const Вопрос: будет ли такой код оптимальнее? С одной стороны, при каждом вызове процедуры будет на 1 переменную меньше загоняться в стек С другой стороны, внутри процедуры надо будет держать внутреннюю переменную, куда будет сохраняться вторая половина кода |
![]() |
![]() |
![]() |
#2 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]()
Нет. См. комментарий про TRGBtriple в одной из предыдущих тем.
Цитата:
ADD: Если ваши аргументы это константы, тогда выражение my_proc(arg1 shl 16 or arg0) компилятор посчитает еще на уровне компиляции и создаст константу, которая будет передана как один параметр без дополнительной возьни с регистрами во время исполнения программы. Тогда в процедуре вы можете представить это значение как комплексную структуру и они будут разделены на уровне оффсетов аргументов в стеке еще на этапе компиляции (без дополнительной возьни с регистрами во время исполнения программы). Последний раз редактировалось macomics; 08.09.2022 в 17:35. |
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 684
|
![]()
Если процедура вызывается раз 40 - то каждый раз перед ее вызовом прописывается код загрузки в стек всех параметров
А код вызова процедуры "распаковки" Lword -> 2x Word - один раз в самой процедуре. |
![]() |
![]() |
![]() |
#4 | |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]() Цитата:
Нет. В вашем случае будет оптимальнее перейти на чистый Си. E-Mail: arigato.freelance@gmail.com
|
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() |
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() Цитата:
В крайнем случае всегда можно воспользоваться HiWord и LoWord Последний раз редактировалось macomics; 08.09.2022 в 19:59. |
|
![]() |
![]() |
![]() |
#7 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,810
|
![]()
Не, Асм жестко слишком. Си будет достаточно, там можно будет как душе угодно параметры туда-сюда передавать
![]() E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 684
|
![]()
В универе 1 семест нам давали Си. Но честно говоря, мне не понравился си-шный синтаксис. Delphi пользуюсь потому что это осовремененный Pascal
Потому что то как пишется код на Си - это какой-то взрыв мозга... Равно вместо присваивания, восклицательный знак вместо отрицания... |
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать так,чтобы он выводил только ответ на вопрос, без вводных данных? | Настя1303 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 28.09.2018 02:05 |
Сокращение | Green4el | HTML и CSS | 15 | 07.11.2013 02:37 |
Оптимизация (сокращение) кода решения задачи #46 c acmp.ru - вывод числа E с заданной точностью | Poma][a | Паскаль, Turbo Pascal, PascalABC.NET | 47 | 05.07.2013 23:50 |
сокращение числа переборов для нахождения делителей числа | ujif | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 13.06.2013 20:33 |
Сокращение if | AxenicX | Общие вопросы C/C++ | 2 | 07.11.2009 16:08 |