Size: a a a

Ассемблер

2021 July 17

ST

Saenro T in Ассемблер
Так это обычный sub rax, rax или xor rax, rax
Ой, надо же 32bits
источник

C

Cofeefee in Ассемблер
Опять описался)) rax=4
источник

II

Ira Irina in Ассемблер
а ксор еах сколько байт?
источник

E

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

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Какой номер, можно продать :)
источник

E

Entusiast in Ассемблер
А ты сам знаешь? А то мы тут сидим, думаем, а ты сам не знаешь даже))
источник

E

Entusiast in Ассемблер
У меня только вариант с LEA в голову приходит, но он 4 байта

Не то. Остаётся вариант с ADD. Но он тоже 4 байта
источник

C

Cofeefee in Ассемблер
Одного байта не хватает. Можно было бы решить как mov al, 4/cbw но он по сути тоже самое что mov ax, 4
источник

P

ProMiNick in Ассемблер
push 4, pop eax, nop - наихудший по скорости вариант. годится только для случая патчинга программы когда у вас действительно в распоряжении только 3 байта.
источник

II

Ira Irina in Ассемблер
а ноп зачем?
источник

II

Ira Irina in Ассемблер
pop eax четыре байта со стека снимет, не факт что старшие три будут нули
источник

P

ProMiNick in Ассемблер
так перепутал, ноп туда лишний.
источник

P

ProMiNick in Ассемблер
push 4 - 4 байта на стек запихнет в 32битном режиме.
источник

P

ProMiNick in Ассемблер
но повторюсь способ самый хреновый - только если вот под 3 байта место и все.
источник

II

Ira Irina in Ассемблер
то есть операнд однобайтовый, а три нуля проц сам допишет?
источник

II

Ira Irina in Ассемблер
три нулевых байта в смысле
источник

II

Ira Irina in Ассемблер
ну тогда да решил задачу
источник

s

s54816 in Ассемблер
Операнд записывается байтом, но расширяется со знаком.
источник

E

Entusiast in Ассемблер
Главное, чтоб ещё стэк был
источник

E

Entusiast in Ассемблер
Если можно уместить один байт, то лучше сделать через 4 байта - вариантов куча
Если же нет - можно и этот использовать. Но минус в том, что:
- Очень медленная
- Требует стэка

А стэка может и не  быть вовсе.
источник