Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Low_dword & High_dword


Igit ©   (2003-01-22 20:35:00) 

у меня в переменной yx:dword лежат координаты курсора мыши первые 4 байта - по y, последние - по x (например для 1023*1 yx=66559($0001 03ff) ). Как мне получить эти x и у. x я получаю так - word(yx), а x пробовал так - word(yx-word(yx)), но так всегда 0...также пробовал x получить так:
asm
push eax
mov eax, yx
mov x, ax
pop eax
end;
но не получается, и бряки не ставятся (Delphi виснет с компом...)


Anatoly Podgoretsky   (2003-01-23 09:32:00) [1]

Юрий Зотов © (22.01.03 22:13)
А что теперь скажешь :-)


Igit   (2003-01-23 09:07:00) [2]

Большое спасибо.... у меня все получилось:
y:=yx shr 16;
x:=word(yx);
а я думал, что shr, 16 поделит нацело на 8...


Юрий Зотов   (2003-01-22 22:13:00) [3]

Да...

Раньше я думал, что человек, умеющий написать хотя бы одну ассемблерную команду, должен все же знать, что 4+4 будет 8, а не 4. Уж не говоря о знании побитовых операций.

Теперь вижу, что ошибался.


Anatoly Podgoretsky   (2003-01-22 20:59:00) [4]

dword не может хранить 8 байт


Tux   (2003-01-22 20:45:00) [5]

lo = yx shr 16;
hi = yx and $ffff0000


Igit   (2003-01-22 20:41:00) [6]

Или хотябы как передвинуть все байты в право (в асме shr, но только для двоичых...)


Наверх

Титульная страница Поиск, карта сайта Написать письмо