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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2024, 16:41   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 653
По умолчанию Какие регистры нужно сохранять при перед вызовом функции

Внутри asm процедуры происходит вызов "обычный" Delphi-процедуры:
Код:
call MyFunction
У нее есть только один параметр который заходит через eax

Вопрос - какие регистры после завершения выполнения MyFunction останутся с изначальными данными, а какие надо сохранить перед вызовом MyFunction, чтобы не потерять данные в них?
Kronos913 вне форума Ответить с цитированием
Старый 15.07.2024, 06:28   #2
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,834
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Вопрос - какие регистры после завершения выполнения MyFunction останутся с изначальными данными, а какие надо сохранить перед вызовом MyFunction, чтобы не потерять данные в них?
Ответ есть в справке Delphi, тема называется “The asm statement”:
Цитата:
Register use

In general, the rules of register use in an asm statement are the same as those of an external procedure or function. An asm statement must preserve the EDI, ESI, ESP, EBP, and EBX registers, but can freely modify the EAX, ECX, and EDX registers. On entry to an asm statement, BP points to the current stack frame, SP points to the top of the stack, SS contains the segment address of the stack segment, and DS contains the segment address of the data segment. Except for ESP and EBP, an asm statement can assume nothing about register contents on entry to the statement.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции из asm, какие регистры могут потеряться Kronos913 Общие вопросы Delphi 1 21.01.2024 23:18
Перед вызовом "Fill" не было инициализировано свойство SelectCommand user1993 C# (си шарп) 3 07.04.2023 16:09
Какие регистры обязаны сохранять АРІ ф-ции? Питерский2 Win Api 4 06.06.2014 19:15
Проблема с вызовом функции Terikon JavaScript, Ajax 6 17.10.2013 19:11
Проблема с вызовом функции B DLL doniyor Мультимедиа в Delphi 2 05.11.2009 16:14