.close, и если 
                  
                  
                  [eax+ebx]
                  
                  
                   равен 31 в шестнадцатиричной системе то выполнялось jmp .one?
                  
                  
                  мой код:
                  
                  
                  strbin_to_dec:;(eax str, ebx len)
                  
                  
                    push ecx
                  
                  
                    push edx
                  
                  
                    xor edx, edx
                  
                  
                    xor ecx, ecx
                  
                  
                    .for:
                  
                  
                       cmp ebx, 0
                  
                  
                         jmp .close
                  
                  
                       cmp [eax+ebx], 31h
                  
                  
                         jmp .one
                  
                  
                       dec ebx
                  
                  
                       jmp .for
                  
                  
                    .close:
                  
                  
                       pop edx
                  
                  
                       pop ecx
                  
                  
                       ret ; eax dec
                  
                  
                  
                  
                  
                  (fasm, 32-бит, линукс)
                  
                  
                
если EBX проверить раньше пихания в стек.. то можно сократить время исполнения
ну.. мне это сейчас не важно) мне для начала нужно чтобы хотябы заработало как надо😅
где тут .one
strbin_to_dec:;(eax str, ebx len) push ecx push edx xor edx, edx xor ecx, ecx .for: test ebx, ebx jz .close cmp byte[eax+ebx], 31h je .one dec ebx jmp .for .one:; <- тут push eax mov eax, 2 call pow add edx, eax pop eax .close: xchg eax, edx pop edx pop ecx ret ; eax dec
перед .close поставь jmp .for
strbin_to_dec:;(eax str, ebx len) push ecx push edx xor edx, edx xor ecx, ecx .for: test ebx, ebx jz .close cmp byte[eax+ebx], 31h je .one dec ebx jmp .for .one:; <- тут push eax mov eax, 2 call pow add edx, eax pop eax jmp .for; если так то получился бесконечный цикл .close: xchg eax, edx pop edx pop ecx ret ; eax dec
Обсуждают сегодня