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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2024, 13:29   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 653
По умолчанию BASM и record

Код:
type
  t1 = record
    a, b, c, d: LongWord;
  end;
  p1 = ^t1;
Код:
procedure aaa(b:p1)
Вопрос: если я использую asm, то как мне обращаться к переменным a, b, c, d?
Считывать и записывать их

Последний раз редактировалось Kronos913; 30.05.2024 в 13:32.
Kronos913 вне форума Ответить с цитированием
Старый 15.07.2024, 06:25   #2
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,829
По умолчанию

На самом деле ответ уже был: использовать типы Delphi.
Код:
procedure aaa(b:p1);
asm
    MOV [EAX].t1.a, 5
end;
У меня также возникает вопрос, зачем использовать указательный тип? В данном примере указатели нужны лишь ради возможности передать nil в качестве параметра, в прочих случаях лучше использовать модификатор const или var.
Код:
procedure aaa(var b: t1);
asm
    MOV b.a, 5
end;
Модификатор const был введен еще в Turbo Pascal 6.0 как раз для принудительной передачи за́писных и строковых (ShortString в Delphi) параметров ссылкой, а не копированием в стек.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход по ссылке (BASM) Kronos913 Общие вопросы Delphi 1 05.02.2024 10:01
процедура Exchange на BASM Sibedir Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 09.09.2015 15:37
Странное поведение BASM Sibedir Общие вопросы Delphi 8 31.01.2011 12:02
В чём различие записей Record от Packed Record? Terran Общие вопросы Delphi 7 08.06.2010 17:14
Оптимизация sin() на BASM InternetStranger Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 11.02.2010 00:56