Всем здрасти. Раньше как-то не обращал на это внимания, но сегодня был сильно озадачен. masm одинаково компилирует две инструкции. Опкод один 6Ch. Может кто знает, что это за безобразие И как всё-таки правильнее.
Да, только edi. В нескольких справочниках посмотрел, прочитал. Наверно в Microsoft думают совсем иначе
Ничего они не думают, опкод же правильный. Думать ты должен. А вообще можно просто писать: Code (Text): insb
Инструкция правильная, хоть и выглядит кривовато (к примеру, ins dword ptr es:[0], dx тоже верная инструкция). Если хорошо раскурить ман, видно следующее: С outs такая же картина, плюс ds может быть перекрыт префиксом, так что при определённой сноровке выстрелить себе в ногу можно даже этой внешне простой инструкцией.
cppasm Если-бы не думал, то никогда и не заметил-бы этого. baldr Cпасибо за исчерпывающее объяснение. Сам я просто пользуюсь AMD`шным мануалом, и таких подвохов неожидал.
s_d_f И где описано что приёмник адресуется регистром Esi ? Если у вас есть маны и вы их не изучаете, то это всёравно что у вас их нет. Вначале матан, затем только вопросы.
s_d_f masm штука хитрая у меня без ошибок получалось указать ebx для инструкции movs или scas только это сути не меняет - все эти синтаксические конструкции превращаются в единственную семиотическую
Масму, имхо этот операнд нужен только шоб понять размерность адреса - ставить ему 67 или нет. Поэтому возможно, что пойдет любой РОН.
Не думал, что кто-то отнесётся с таким непониманием. В масме есть еще и другие загибы. Например инструкции типа: lock add ebx,varka Компилирует то что просто несуществует и это не ud2.
s_d_f OllyDbg почему-то расшифровывает инструкцию outsb как outs dx, byte ptr es:[edi] если бы не этот топик не обратил бы внимание, хотя должно быть ds:[esi], а вот вместо insb пишет правильно ins byte ptr es:[edi], dx надо бы Oleh Yuschuk сообщить
Там если постараться можно с десяток ошибок найти. И эта еще не самая серьёзная. Там нет поддержки 16-битной аддрессации. Code (Text): ;вот это олька будет воспринимать как данные xor bx,bx mov fs:[bx],esp
Там если постараться можно с десяток ошибок найти. И эта еще не самая серьёзная. Там нет поддержки 16-битной аддрессации. Code (Text): ;вот это олька будет воспринимать как данные xor bx,bx mov fs:[bx],esp Oleh Yuschuk - об этом не может не знать.