S
is a given character string, then I have to find all the digits characters of S
. Did I make it unnecessarily complicated?
bits 32
global start
extern exit
import exit msvcrt.dll
segment data use32 class=data
s db '+', 'r', '0', '8', '8', '1', 'i', '5'
len equ $ - s
digits db '012345789'
d times len db 0
segment code use32 class=code
start:
mov ecx, len
mov esi,0
mov ebx,0
jecxz end_prog
repeat_this:
push ecx
mov al, [s + esi]
mov ecx, 10
mov edi, digits
find:
scasb
jz found
loop find
jmp next
found:
mov edi, ebx
inc ebx
mov [d + edi], al
next:
inc esi
pop ecx
loop repeat_this
end_prog:
push dword 0
call [exit]