Size: a a a

Ассемблер

2021 September 04

楽園松本 in Ассемблер
Две минуты не реагирует -- стреляй
источник

fz

f z in Ассемблер
Сергея иногда достают в другом чате, так что он уходит в ребут, пара часов и все будет ок. Надеюсь.
источник

fz

f z in Ассемблер
Вообще то это про другого Сергея. )
источник

A

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

fz

f z in Ассемблер
Это больше не про оправдание, а про наблюдение
источник

A

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

A

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

fz

f z in Ассемблер
Достают его в чате курсеры, а отвечать он перестает везде. Такой вот ребут у него
источник

E

Entusiast in Ассемблер
Что за чат курсеры
источник

C

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

d

disba1ancer in Ассемблер
попробовал простой strcmp скормить компилятору:
  .file "memop.c"
 .intel_syntax noprefix
 .text
 .align 16
 .globl strcmp
 .type strcmp, @function
strcmp:
 push  ebp
 mov   ebp, esp
 push  ebx
 mov   edx, DWORD PTR [ebp+8]
 mov   ecx, DWORD PTR [ebp+12]
 movzx eax, BYTE PTR [edx]
 test  al, al
 jne   .L2
 jmp   .L9
 .align 16
.L4:
 movzx eax, BYTE PTR [edx+1]
 add   edx, 1
 lea   ebx, [ecx+1]
 test  al, al
 je    .L10
 mov   ecx, ebx
.L2:
 movzx ebx, BYTE PTR [ecx]
 cmp   bl, al
 je    .L4
.L3:
 sub   eax, ebx
 mov   ebx, DWORD PTR [ebp-4]
 leave
 ret
 .align 16
.L10:
 movzx ebx, BYTE PTR [ecx+1]
 xor   eax, eax
 sub   eax, ebx
 mov   ebx, DWORD PTR [ebp-4]
 leave
 ret
.L9:
 movzx ebx, BYTE PTR [ecx]
 xor   eax, eax
 jmp   .L3
 .size strcmp, .-strcmp
 .ident "GCC: (GNU) 11.2.0"
источник

d

disba1ancer in Ассемблер
тут 2 похожие по сути ветки есть, с минимальными отличиями и не ясно зачем нужен xor eax, eax, он в этом месте всегда нулевой на входе
источник

d

disba1ancer in Ассемблер
Entusiast @maplum @Aiwan как вам gcc?
источник

E

Entusiast in Ассемблер
Лень разбирать..
Ничего необычного не вижу..
Ну нормально, вроде..
источник

d

disba1ancer in Ассемблер
ну если перебор по байту нормально, то ладно, но тут меня напрягает .L10 и .L9 они очень похожи, и xor eax, eax в них не нужен
источник

d

disba1ancer in Ассемблер
модифицировал так:
.globl  strcmp
strcmp:
#        push    ebp
#        mov     ebp, esp
       push    ebx
       mov     edx, DWORD PTR [esp+8]
       mov     ecx, DWORD PTR [esp+12]
       movzx   eax, BYTE PTR [edx]
       movzx   ebx, BYTE PTR [ecx]
       test    al, al
       jne     .L2
       jmp     .L3
       .align 16
.L4:
       movzx   eax, BYTE PTR [edx+1]
       add     edx, 1
       lea     ecx, [ecx+1]
       test    al, al
       movzx   ebx, BYTE PTR [ecx]
       je      .L3
.L2:
       cmp     bl, al
       je      .L4
.L3:
       sub     eax, ebx
#        mov     ebx, DWORD PTR [ebp-4]
#        leave
       pop     ebx
       ret
источник

C

Cofeefee in Ассемблер
За enter/leave убивать. Что мешало прямо с esp переменные брать?
источник

C

Cofeefee in Ассемблер
Вижу что они закомменчены
источник

d

disba1ancer in Ассемблер
это я поправил напильником, но судя по таблицам агнера leave не настолько и медленный
источник

C

Cofeefee in Ассемблер
Да возьми ты агнеровские процедуры. Если код написан в РУ-юрисдикции и будет жить и работать тут, то всякий GPL идет лесом.
источник