КТ315
110
Нет, не меньше 200.
Alexey
Нет, не меньше 200.
Согласен, зря быканул
Alexey
110
Слишком много прикинул
k_voistinov
доброго дня подскажите как можно реализовать это за не более 5 строк: N equ 200 A db N dup (?) B dd N dup (?) А[i] = A[i] - i B[i] = B[i] - i пока только в 6 могу mov al, byte ptr [esi + ecx]     sub al, cl     mov byte ptr [esi + ecx], al     mov eax, dword ptr [edi + ecx*4]     sub eax, ecx     mov dword ptr [edi + ecx*4], eax esi и edi адреса массивов
k_voistinov
точно, спасибо я думал только регистры могут быть в качестве первого операнда https://www.felixcloutier.com/x86/sub
The Bird of Hermes
а i знаковое или без?
Ммм, а как индекс массива знаковым быть может
k_voistinov
а i знаковое или без?
я полагаю что i от 0 до N
Aiwan \ (•◡•) / _bot
Ммм, а как индекс массива знаковым быть может
индекс никак, но вот рещультат 0 - i получается отрицательный. а если учесть, что изначально массивы инициализировны нулем, то в случае если db и dd в секции data на винде (с линуксом не помню) резервирование через dup ? порождает ноль
Aiwan \ (•◡•) / _bot
вот и получается ошибка изза переполнения в массиве с байтовыми элементами, ибо предел положительного для байта это 127, при значения выше (128-200) рещультат будет неправильный
Aiwan \ (•◡•) / _bot
я вот про эту ошибку говорил
Aiwan \ (•◡•) / _bot
и всю оптимищацию можно свести к изменению знака i и записи ее в массив
Aiwan \ (•◡•) / _bot
кто с этим согласен, а у кого другое мнение?
k_voistinov
а как исправить? расширить байт до ворда с сохранением знака?
Aiwan \ (•◡•) / _bot
хотя это роли наверное нн игоает. если щадание с подковыркой, писать надо то чтоиполучится
The Bird of Hermes
Вот например 5-200 это реально стремно будет, потому что число вообще положительное получится
Aiwan \ (•◡•) / _bot
А почему неправильный-то, все правильно
0-150 сколько будет для знакового байта?
Aiwan \ (•◡•) / _bot
Вот например 5-200 это реально стремно будет, потому что число вообще положительное получится
откуда 5? там значение всех жлементов 0 должен быть в условиях что я описал выше
The Bird of Hermes
А не, 106
Aiwan \ (•◡•) / _bot
105
по логике -150 (не учитывая размер). но это переполнение для байта и результат немного другой
The Bird of Hermes
по логике -150 (не учитывая размер). но это переполнение для байта и результат немного другой
Знаки у нас в голове, с точки зрения вычислительной машины все логично
Aiwan \ (•◡•) / _bot
Почему 0
потому что .data a db 200 dup (?) вот этот (?) говорил что в жто место асмом ничего не перезаписывпется, а остается по умолчанию. а по умолчанию ОС когда выделяет под секции память зануляет эту память. это для винды
Aiwan \ (•◡•) / _bot
The Bird of Hermes
The Bird of Hermes
Зачем отдельно операцию прописывать, если результат будет тот же
Aiwan \ (•◡•) / _bot
А смысл, так ведь и получится
4 строки для решения задачи mov eax,ecx neg eax mov byte[esi+ecx],al mov dword[edi+ecx*4],eax
The Bird of Hermes
Не ну если вдруг мы у себя в голове хотим сделать, чтобы при вычитании беззнаковых чисел результат вычитания большего из меньшего всегда был равен нулю, это конечно можно обработать через флаг переноса и кидать 0 в назначение
The Bird of Hermes
Перезапишем сразу 4 элемента подряд?)
The Bird of Hermes
А, он там двордовый
The Bird of Hermes
4 строки для решения задачи mov eax,ecx neg eax mov byte[esi+ecx],al mov dword[edi+ecx*4],eax
А смысл это делать, при вычитания будет тот же результат
The Bird of Hermes
При условии, что в назначении 0
The Bird of Hermes
(А у нас там 0)
Aiwan \ (•◡•) / _bot
А смысл это делать, при вычитания будет тот же результат
красивей и непонятней выглядит. да и по скорости в тактах что то да должно выигрываться
The Bird of Hermes
И вообще при такой ситуации я бы счётчик делал отрицательный)
The Bird of Hermes
А адреса массивов - на конец, а не на начало
The Bird of Hermes
Тогда вообще будет пипец как непонятно🤣
The Bird of Hermes
4 строки для решения задачи mov eax,ecx neg eax mov byte[esi+ecx],al mov dword[edi+ecx*4],eax
И тогда в решении будет 2 инструкции, снова
КТ315
Вася, ты чат перепутал.
alxalx
Вася, ты чат перепутал.
Вася,прости,был не прав.
КТ315
Вася,прости,был не прав.
Сообщение удали своё.
КТ315
КТ315
Захочешь.
alxalx
@IvUyr
Крыса.
Aiwan \ (•◡•) / _bot
уверен что не поделишься, ибо слово делиться подрпзумевает бескорыстное действие. а твои слова гнильцой попахивают, что нить да попросишь. если я не прав скидывай сюда материалы, все равно они без дела лежат
Aiwan \ (•◡•) / _bot
@DianeParker_D
­
Крыса.
Ля ты псина!
Aiwan \ (•◡•) / _bot
как скажешь
как здесь @FAssembler
Дмитрий
ругань какая) Нет бы скилл оттачивать 😁
Гарри
Мужыки
Гарри
Нужна хелпа
Гарри
Составить программу для подсчета числа нулевых символов с использованием команд управления циклом loop. Мы проходили TASM, если вдруг нужно будет. Если никто не хочет помогать, то хотя бы просто скажите, что за нулевой символ? Я вычитал, что это тот, кто заканчивает строку, но он всего 1 будет на строку. Значит, я что-то не то нашел или как-то не так понял задание?
Aiwan \ (•◡•) / _bot
Нет таковых
тогда все просто mov cx,0 @@: loop @b
Гарри
тогда все просто mov cx,0 @@: loop @b
звучит как какой-то рофл, который я не понимаю)
Aiwan \ (•◡•) / _bot
Aiwan \ (•◡•) / _bot
Гарри
это согласно твоим ответам
Хех. Ну допустим, мув передвигает из cx в 0 или наоборот, не помню точно, а вот что дальше делается мне непонятно)
Aiwan \ (•◡•) / _bot
Хех. Ну допустим, мув передвигает из cx в 0 или наоборот, не помню точно, а вот что дальше делается мне непонятно)
есдли cx=0 то переход по метке не происходит и выполняется следущие инстоукции после loop, не знаю что у ья там - ввхрд из прошраммы или вывод какого то сообщения, а мож еще что
empty or [ #𝖘𝖕𝖎𝖗𝖎𝖙 ] [ #XXX ] [🇪🇭DINI//8] [ kfc] / †𝖎𝖇𝖎𝖓𝖆𝖝𝖞𝖎𝖕𝖔𝖌𝖆
Хазах
Дмитрий
всем доброго здоровица
Дмитрий
скажите пожалуйста в криптоалгоритме rc4-cipher сохраняется последовательность байт от нешифра к шифру?
Дмитрий
и наоборот
Дмитрий
E7 71 4A 15 2A 84 3B 50 CC D2 BF 1C E9 49 71 D9 72 D9 14 36 C5 04 1D 74 B4 78 8D BB BD EC 49 63 5E 8D 25 53 20 67 CF 54 7C B0 10 04 58 45 CF 02