ecx, len
mov esi, s1
mov edi, s2
cld
rep movsb
и тут вижу сброшен флаг направлении, и мне стало инесно в каких ситуациях эту флаг устанавливают??
в ситуациях когда надо поменять направление. тогда индексные регистры будут не увеличиваться, а уменьшаться
тогда можете дать простой пример ситуации, чтоб все прощло на сквозь, плииз
найди через строковые инструкции индекс последней встречающейся буквы "а" str1 db "srgdgfasdfssgraasdgssadhtdg",0
Сдвинуть кусок памяти вверх или вниз.
все спасибо огромное)))
ты лучше попробуй решить это самым оптимальным способом
ну если я вкулючу флаг df, в после использую lods
значить я правильно решил?
так ты и не показал код с решением
section .text global _start ; должно быть объявлено для использования gcc _start: ; сообщаем линкеру входную точку mov ecx,len mov edi,my_string mov al , 'e' cld repne scasb je found ; когда нашли ; Если не нашли, то выполняем следующее mov eax,4 mov ebx,1 mov ecx,msg_notfound mov edx,len_notfound int 80h jmp exit found: mov eax,4 mov ebx,1 mov ecx,msg_found mov edx,len_found int 80h exit: mov eax,1 mov ebx,0 int 80h section .data my_string db 'hello world', 0 len equ $-my_string msg_found db 'found!', 0xa len_found equ $-msg_found msg_notfound db 'not found!' len_notfound equ $-msg_notfound
не дочитал до конца. что значит насквозь? он и так у тя выполнится столько раз сколько равняется ecx
найти букву e в слове hello world
а введи несколько 'e'
думаю результатом будет true
Обсуждают сегодня