Всем привет! Вопрос касательно синтаксиса FASM-а есть структура типо Код (Text): struct Point x dd 0 y dd 0 ends Я передаю указатель на нее в процедуру и обрасчаюсь к полям этой структуры вот таким образом Код (Text): proc draw currentPoint:dword mov ebx, [currentPoint] mov eax, [ebx + Point.x] .... ret endp Скажите, пожалусто, это нормально ? Можно ли обращаццо к полям более элегантно? Я ожидал что-то вроде такова: Код (Text): proc draw currentPoint:Point mov eax, [currentPoint.x] .... ret endp но нигде не нашол, как это можно сделать. Заранее спасибо
первое - да, второе - нет. второе - по идее обращение к месту, где на самом деле расположен указатель, как к элементу структуры, которая на самом деле расположена в другом месте.
теоритически в принципе можно если тебе не жалко стека. практически не в курсе насчет такой возможности в синтаксисе fasm и его макросах PS. не смог придумать ничего умнее чем Код (Text): include 'win32ax.inc' .data fmt db '%d, %d', 0 buffer rb 512 struct Point x dd 0 y dd 0 ends .code proc draw p,p_y cinvoke wsprintf, buffer, fmt, [p + Point.x], [p + Point.y] invoke MessageBox, 0, buffer, 0, 0 ret endp start: stdcall draw, 48, 59 invoke ExitProcess, 0 .end start синтаксис фасма к сожалению уже подзабыл