Страница: 1 | 2 | 3 | 4 |
Вопрос: HScroll в ListBox
Добавлено: 09.03.05 23:05
Автор вопроса: ZagZag | ICQ: 295002202
Ответы
Всего ответов: 54
Номер ответа: 46
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #46
Добавлено: 18.03.05 12:35
Ура! На Windows 2000 тоже заработало
Редкое приятное исключение.
Номер ответа: 47
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #47
Добавлено: 18.03.05 12:44
Кстати, может кто объяснит мне почему ZF у меня не устанавливается на XLAT? Или так и должно быть?
Function LB_ItemLen(ByVal pItemText As Long, ByVal FullLength As Long) As Long
#Register None
! MOV ESI, pItemText
! MOV ECX, FullLength
! MOV EBX, Offset IsTextTbl
! XOR EAX,EAX
Loop1:
! MOV AL, BYTE PTR [ESI]
! XLAT
! CMP AL,0
! JE Finish
! DEC ECX
! JZ Finish
! INC ESI
! JMP Loop1
Finish:
! MOV EAX, FullLength
! SUB EAX, ECX
! INC EAX
! MOV Function, EAX
Exit Function
IsTextTbl:
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H20,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H30,&H31,&H32,&H33,&H34,&H35,&H36,&H37,&H38,&H39,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H41,&H42,&H43,&H44,&H45,&H46,&H47,&H48,&H49,&H4A,&H4B,&H4C,&H4D,&H4E,&H4F
! DB &H50,&H51,&H52,&H53,&H54,&H55,&H56,&H57,&H58,&H59,&H5A,&H0,&H0,&H0,&H0,&H5F
! DB &H0,&H61,&H62,&H63,&H64,&H65,&H66,&H67,&H68,&H69,&HA,&HB,&HC,&HD,&HE,&HF
! DB &H70,&H71,&H72,&H73,&H74,&H75,&H76,&H77,&H78,&H79,&H7A,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
! DB &H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0,&H0
'! DB &H0,&H1,&H2,&H3,&H4,&H5,&H6,&H7,&H8,&H9,&HA,&HB,&HC,&HD,&HE,&HF
End Function
Просто лишнее CMP AL,0 не хочется писать, а так конечно мне по барабану
Номер ответа: 48
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #48
Добавлено: 18.03.05 15:54
Вот так будет короче и быстрее:
mov ecx, FullLength
mov ebx, offset IsTextTbl
xor eax, eax
@Lp:
mov al, byte ptr[esi]
test cl, byte ptr[ebx+eax]
jz Finish
inc esi
loopnz @Lp
Finish:
Номер ответа: 49
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #49
Добавлено: 18.03.05 15:56
пардон, конечно же
mov esi, offset pItemText
Номер ответа: 50
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #50
Добавлено: 18.03.05 19:40
Хи, для PB значит... Ну наконец-то ты пришел к выводу что ВОТ ТАКАЯ ЗАПИСЬ ОПЕРАТОРОВ ВЫГЛЯДИТ КРИВОВАТО И Выбрал Смешаный Регистр Символов
Теперь уже и понять-то сложно какой код PB а какой VB Но смешаный - смотрится, имхо, лучше
Номер ответа: 51
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #51
Добавлено: 19.03.05 11:30
Ну наконец-то ты пришел к выводу что ВОТ ТАКАЯ ЗАПИСЬ ОПЕРАТОРОВ ВЫГЛЯДИТ КРИВОВАТО И Выбрал Смешаный Регистр Символов
О чём ты? И почему у тебя столько больших букв? Тоже шифт западает?
Номер ответа: 52
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #52
Добавлено: 19.03.05 11:34
cresta,
Вопрос был несколько в другом. Должен ли устанавливаться флаг нуля после XLAT или это в Intel'е не предусмотрено?
Номер ответа: 53
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #53
Добавлено: 19.03.05 13:42
XLAT/XLATB - Translate
Usage: XLAT translation-table
XLATB (masm 5.x)
Modifies flags: None
Поэтому последующий cmp нужен. А чтобы не делать лишних движений предложил test cl, byte ptr[ebx+eax]. Это позволяет проверить разом на ноль и ecx, и байт в таблице. Заодно ещё одна загрузка экономится.
Номер ответа: 54
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #54
Добавлено: 19.03.05 14:01
Угу, мог и сам посмотреть Ну да ладно, этот участок к скорости не критичен, поэтому переписывать не буду. Но на будущее учту