Size: a a a

Ассемблер

2021 November 02

АГ

Алексей Греднев... in Ассемблер
Или лучше lea rax addr1 и lea rax addr2, а внутри кода сделать проверку на четность и поставить команды mov addr1 mem и mov addr2 write.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
...от четности rcx (счетчика)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
но тебе этот вариант уже предлагали
источник

n

nano in Ассемблер
test   rcx, 1
cmovnz rax, [mem2]
cmovz  rax, [mem1]


Уменьшил на одну инструкцию.
Или твой вариант быстрей?)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ему не значение, а адрес памяти нужен
источник

n

nano in Ассемблер
А точно
источник

n

nano in Ассемблер
cmov на самом деле странно работает. По идеи он не выполняется если не верно условие, но при этом в любом случае проверят значение во втором параметре. То-есть , еслиб кинуть не валидный адрес, то будет ошибка
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
что значит "проверяет значение"?
источник

АГ

Алексей Греднев... in Ассемблер
А сколько тактов процессора занимает extern malloc и затем extern free? И если выделять память такими командами, (ещё mmap), сколько оперативки это займёт?
источник

n

nano in Ассемблер
xor eax, eax
test eax, eax
cmovne eax, [0]


Тут по идеи cmov не должен сработать, но так как адрес [0] не валидный, ошибка будет
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
он сработает, потому что EIP будет на него указывать. он не сработает если этого не будет (джампом например обойти эту инстукцию)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
другой вопрос будет ли выполнено само присваивание в зависимости от флагов
источник

n

nano in Ассемблер
То что выше cmov не обращай внимания. Я просто создал условие при котором он не должен присвоить значение. А раз не должен присвоить, то ему должно быть пофиг что внутри [0]
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
чтение памяти, как в твоем примере, в любом случае выполняется получается
источник

n

nano in Ассемблер
Вот, я про это. Типо могли сделать, чтобы просто игнорировалась инструкция, после проверки флагов
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
уже сделали, jcc
источник

АГ

Алексей Греднев... in Ассемблер
Подкинул задачку, теперь её будут полчаса обсуждать. Так, я ещё один вопрос задал.
источник

n

nano in Ассемблер
Тут зависит от ситуации, иногда нужен cmovcc иногда jcc. Конечно второе всегда заменить может. Но с cmovcc удобней бывает
источник

II

Ira Irina in Ассемблер
Это чтобы на корню пресечь всякие мелтдауны)
источник