![]() |
Кстати, второй хороший вопрос что это? r/m32,r32 |
>Да не ловил я вас, зачем это мне, просто спросил, а ответ плохой. Вам не нравится - вы и страдайте. Я вам тоже задал пару вопросов и ответ - рукалицо. >Чего не выполняет пример, оч. любопытно. Не обнуляет произвольную выбранную ячейку памяти (без дополнительных действий). >Кстати, второй хороший вопрос >что это? r/m32,r32 То есть вы привели пример, даже не понимая, что все эти буковки означают? Да вы прям праздник какой-то. Ну да ладно, для убогих разберем. r/m32 означает регистр(si, di, bp, bx) или пару регистров (bp:si, bp:di, bx:si, bx:di - если адресация по базе), содержащий адрес ячейки в памяти, к которой применяется команда. 32 - количество бит выбранной ячейки памяти. r32 - это содержимого 32-битного регистра общего назначения. Так вот, что же делает команда xor r/m32,r32? А она выполняет команду xor между ячейкой памяти и регистром и результат записывает в ячейку памяти. И ноль будет записан только в том случае, если эти значения равны, то есть с вероятностью 1 к 4 с лишним миллиардам. Ну или предварительно нужно прочитать содержимое этой ячейки памяти в вышеуказанный регистр, но это уже к самой команде xor отношения не имеет. И после всего этого вы считаете, что имеете моральное право проверять чьи-то знания? |
ДДМ, Маэстро, поздравляю, вы что-то начали догонять) Так что там про обнуление данных? Вы за, или против? |
37 [em]1. Зачем использовать команду xor, когда вы хотите обнулить данные.[/em] 57 [em]37-Добрых дел мастер > чета хреново вы выучили ассемблер, xor не обнуляет данные.[/em] 59 [em]2Перпетум Мобиле. щито? [/em] ДДМ, вы понимаете полёт своей мысли? |
да, похоже я начинаю догонять, что мне скучно вести этот разговор со стенкой. |
Скушно догонять, что вы обкакались? Вряд ли это скушно, скорее грустно. |
Добрых дел мастер, ты баловался резидентами или вирусами? Вроде больше нигде экономия целого байта на операцию не была столь критична. |
1. очень давно и только в учебных целях. Ничего деструктивного не делал. 2. Еще подобные вещи применимы при написании, например, компиляторов. Оптимизация кода, и все такое. А если поднапрячься - думаю, можно еще много применений найти. 3. Дело в том, что в учебнике, по которому я занимался, это было написано так, как будто знать это абсолютно естественно. 4. Ну и ради справедливости, 1 байт - это при использовании 16-битрых команд. Чем больше разрядность - тем больше разница. |
*16-битных. В частности, xor eax, eax - 2 байта, а mov eax, 0 - 5 байт (4 из которых - 32-битный ноль). |
зы. что лучше применить, xor или mov нуля по факу определяет количество тактов процессора при выполнении этих команд. и так и так работать будет, и как раз оптимизация прог на асме и сводилась к тому, чтобы работало быстрее.... Давно прошли те времена, когда что-то оптимизировали, сейчас и скорости и памяти до задницы... |
88-Добрых дел мастер > это повезло с учебником. Мы всё это узнавали расковыривая вирусы. Ещё студентами и практически без док. Пытаясь понять как же оно работает. Антивирусы были ещё редкостью, а лечиться надо было как-то. Ну и про один байт - это я так, утрировал. Там миллион же мелких оптимизаций был, типа однобайтового cwd вместо xor dx,dx для отдельных ф-ий int 21. |
90-Перпетум Мобиле > я поэтому и уточнял у ДДМ не хулиганил ли он) В старые времена далеко не все задачи требовали оптимизации по скорости. Да и сейчас старая хохма про "когда ты пишешь int вместо short - кто-то вынужден докупать планку памяти" кажется ещё актуальной. |
2Перпетум Мобиле. Вы серьезно? Зачем делать плохо, когда можно делать хорошо? Я конечно не имею в виду, что не надо писать на РНР, надо на ассемблере: тут производительность\расход памяти ставится в жертву ради быстрого написания. Конечно же, я скорее говорю об оптимизации, выполняемой компилятором. Все-таки сейчас мало кто готов вбухать такие трудозатраты ради экономии. 2kass. Ага, повезло. А потом, когда на 1 курсе начали преподавать паскаль, у меня были серьезные проблемы из-за этого. Во-первых, я очень привык к jmp(j**) и loop, а это не православно в языках высокого уровня. Во-вторых, я пытался применить вышеуказанных xor для обнуления переменных (не понимая, что должно получиться). Ну и много всего. В общем, весело было. |
ДДМ, странный вы поц, ей богу, много словов, это зачем? я бы проще сказал, одним предложением, двумя операндами для xor память не может быть И всё) |
Текущее время: 06:04. Часовой пояс GMT +3. |