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

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

Аватара для DillerInc

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


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

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


Цитата shynar:
Объясните почему так »
...потому что операционная система в наше время бывает либо 32-битная,либо 64-битная.Поэтому использование 16-битных регистров без конкретной необходимости не имеет смысла.

То,что вы сейчас спрашиваете - это ассемблер - к Дельфям имеет мало отношения.Но с другой стороны,ассемблер - это основа программирования,поэтому постараюсь немного объяснить.
Если вы обращаетесь в массиву данных,то вы должны точно указать с каким размером данных (типом данных) вы сейчас работаете.Вообще есть только три основных типа данных: байт,слово и двойное слово(1 байт,2 байта и 4 байта соответственно).В данной функции вы работаете байтами,поэтому обращение к массиву нужно выделить с помощью byte ptr, т.е. byte pointer.Если бы вы хотели доставать из массива по четыре байта за раз,то вы бы написали:
Код: Выделить весь код
mov eax, dword ptr buf2[ebx]
mov dword ptr kzu[ebx], eax
Что-то вроде того.По ассемблеру из книг обычно советуют Юрова,несмотря на то,что он далеко не идеален.

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


Отправлено: 22:54, 20-02-2009 | #19

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