Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Delphi .: [все вопросы] :.
Показать сообщение отдельно

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


shynar, значит так:
Код: Выделить весь код
mov al, byte ptr KZU[esi+ebx]
...подобная связка не поддерживается ассемблером Intel x86 при вычислении эффективного адреса.Вам нужно читать какой-то мануал,раз вы уже так взялись за это дело,а не пытаться что-то вслепую тыкать:
Цитата masm32 help:
Intel x86 has the following format to manage the calculation of the effective address of an array member.

[ Base Address + Index * Scale + Displacement ]

[ebx + ecx * 4 + 8]

ebx is the base address.
ecx is the index.
4 is the scale based on the data size.
8 is the displacement in BYTES.

Base Address
The register that has the starting address of the array in memory.

Index
The register used to determine the offset from the base address.

Scale
The data size based multiplier for the index.

Displacement
The additional offset adjustment from the base address.
И я надеюсь,что вы уяснили себе,что функция не может возвращать непосредственно массив.Она может вернуть указатель на него.В регистре eax.И это уже не зависит от того,на чём вы пишите: Delphi, C, ASM, etc...

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:54, 23-02-2009 | #24

Название темы: Delphi .: [все вопросы] :.