Dec 03, 2007 23:48
Префиксы
rain экспериментировал с префиксами repe/repne, после чего повторили эксперимент на мне. И вот что получается: если добавить два противоречащих друг другу префикса в команду scas, то на разных процессорах они ведут себя по-разному. На моем процессоре (Pentium M) выполняется первый префикс, а на процессоре rain'а (AMD Duron) дела обстоят иначе: выполняется второй (т.е. тот, который ближе к опкоду) префикс.
Интереса ради мы написали небольшую тестовую программу, которая показывает, какой префикс выполняется первым:
format PE GUI
include 'win32a.inc'
mov al, 'a'
mov ecx, 0xFFFFFFFF
mov edi, _str
;db 0f2h
;repe scasb
db 0xf3
repne scasb
ret
_str db "aaaaabbbbbccccc"
интересно, у кого как отрабатывает порядок следования префиксов?