Size: a a a

Ассемблер

2021 August 29

J

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

J

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

J

J in Ассемблер
Кажется забанили, удивительно что так быстро, потому что чат там и вправду мертв
источник

C

Cofeefee in Ассемблер
Тут тоже база пишущих и участников не растёт
источник

d

disba1ancer in Ассемблер
А мой вариант memset пойдёт, я его тут где-то кидал
источник

E

Entusiast in Ассемблер
Потому что в Телеграме мало людей, и из тех людей, кто в Телеграме - мало тех, кто пишет на ассемблере. А ещё остальная часть вообще про чат по ассемблеру в Телеграме не догадывается
источник

d

disba1ancer in Ассемблер
а такой пойдёт?
.global memset
memset:
       dest    = 4
       val     = 8
       count   = 12
       cur     = edx
       end     = ecx

       mov     eax, val[esp]
       mov     ecx, 0x1010101
       mul     ecx

       mov     cur, dest[esp]
       mov     end, count[esp]
       add     end, cur

       cmp     cur, end
       jz      1f

       test    cur, 0x1
       jz      0f
       mov     [cur], al
       add     cur, 1

0:      cmp     cur, end
       jz      1f

       test    end, 0x1
       jz      0f
       sub     end, 1
       mov     [end], al

0:      cmp     cur, end
       jz      1f

       test    cur, 0x2
       jz      0f
       mov     [cur], ax
       add     cur, 2

0:      cmp     cur, end
       jz      1f

       test    end, 0x2
       jz      0f
       sub     end, 2
       mov     [end], ax

0:      cmp     cur, end
       jz      1f
       mov     [cur], eax
       add     cur, 4
       jmp     0b
1:      ret
источник

E

Entusiast in Ассемблер
Я не могу читать код из-за твоих cur и end
источник

E

Entusiast in Ассемблер
Тебе так реально удобно? Я не понимаю
источник

d

disba1ancer in Ассемблер
это gas в интел синтаксисе
источник

d

disba1ancer in Ассемблер
а как без переменных? просто считай что это переменная объявленная как register
источник

E

Entusiast in Ассемблер
Я так не могу считать, мне кажется, что это адрес
источник

d

disba1ancer in Ассемблер
просто на регистрах, я начинаю в них путаться
источник

d

disba1ancer in Ассемблер
просто запомни, в том отрывке cur и end это регистры
источник

E

Entusiast in Ассемблер
add     cur, 1
0:
cmp     cur, end
jz      1f

Остановка флагов, и таких моментов куча. Почему ты не используешь LEA? Тебе же флаги не нужны
источник

d

disba1ancer in Ассемблер
а прямо всегда использовать lea когда флаги не нужны?
источник

E

Entusiast in Ассемблер
Ну да
источник

d

disba1ancer in Ассемблер
я не настолько шарюв ассемблере, чтобы помнить все эти нюансы
источник

E

Entusiast in Ассемблер
Хотя не всегда, там в расширении x86_64 проблемка с lea есть, но не суть
источник

d

disba1ancer in Ассемблер
кстати, а на 32ух битах есть способ ещё большими кусками такое заполнение делать?
источник