Size: a a a

Ассемблер

2020 December 28

LG

Lena Golovach in Ассемблер
какая разница между твоим предложением и простым сравнением ?
источник

LG

Lena Golovach in Ассемблер
cmp так же вычитает все биты и устанавливаем зерофлаг если равны значения
источник

DB

Dima Bat in Ассемблер
ну то что можно луп сделать и там со сдвигом в памяти, там де битовые маски хранятся, сравнивать все одной командой
источник

DB

Dima Bat in Ассемблер
хотя не ерунда получится
источник

DB

Dima Bat in Ассемблер
переходить то надо знать куда)
источник

LG

Lena Golovach in Ассемблер
даже 4 флага
источник

LG

Lena Golovach in Ассемблер
0x10000000
0x20000000
0x40000000
0x80000000
источник

LG

Lena Golovach in Ассемблер
вобщем я не вижу выхода лучше, чем задефайнить значения сумм нужных и сравнивать, соответственно принимать решения исходя из этого
источник

DR

Dima Richev in Ассемблер
Так и делает Microsoft в WinApi. Других решений нет
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Dima Richev
Так и делает Microsoft в WinApi. Других решений нет
сделать таблицу адресов соответсвующей порядковому номеру установленных бит. одно сравнение, магия с таблицей и ты уже в дамках (в участке кода который обрабатывает то или иное состояние битов)
Rusty
источник

LG

Lena Golovach in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
сделать таблицу адресов соответсвующей порядковому номеру установленных бит. одно сравнение, магия с таблицей и ты уже в дамках (в участке кода который обрабатывает то или иное состояние битов)
Rusty
а не проще сдвинуть на 3 байта вправо, взять al и сравнить с дефайнами ? или это тоже самое по сути
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
сделать таблицу адресов соответсвующей порядковому номеру установленных бит. одно сравнение, магия с таблицей и ты уже в дамках (в участке кода который обрабатывает то или иное состояние битов)
Rusty
точнее даже сравнивать не надо, сдвинуть на n-ное количество бит, в итоге получишь порядковый номер из таблицы, а дальше прыжок по адресу из таблицы
источник

LG

Lena Golovach in Ассемблер
без таблицы никак
источник

LG

Lena Golovach in Ассемблер
или дефайнов
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Lena Golovach
а не проще сдвинуть на 3 байта вправо, взять al и сравнить с дефайнами ? или это тоже самое по сути
твой способ при неудачном обстоятельстве может 16 раз выполнить сравнение, мой же прыгает сразу, после некоторой подготовке и время работы этого дела никогда не изменится (или 1й элемент или 16й, без разницы)
источник

LG

Lena Golovach in Ассемблер
угу, и то верно
источник

DR

Dima Richev in Ассемблер
Aiwan ╭∩╮ (òÓ,) ╭∩╮bot
точнее даже сравнивать не надо, сдвинуть на n-ное количество бит, в итоге получишь порядковый номер из таблицы, а дальше прыжок по адресу из таблицы
Не понял сути. Ты хочешь сделать таблицу из флагов + суммой некоторых флагов, а потом получать из него результат через смещение?
источник

DR

Dima Richev in Ассемблер
Это же тоже самое
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
Dima Richev
Не понял сути. Ты хочешь сделать таблицу из флагов + суммой некоторых флагов, а потом получать из него результат через смещение?
не, комбинация фоагов это и есть смещение*4+mytable
источник

LW

Loren White in Ассемблер
а, джамп таблица чтоль ?

align 8
CvtOpTable equ $
qword I32_F32, F32_I32
qword I32_F64, F64_I32
qword I64_F32, F32_I64
qword I64_F64, F64_I64
qword F32_F64, F64_F32
CvtOpTableCount equ ($ - CvtOpTable) / size qword

по типу такого
источник