Форум на Kuban.ru (http://forums.kuban.ru/)
-   Сети и их администрирование (http://forums.kuban.ru/f1029/)
-   -   Что изменилось в linux за последние 5 лет (http://forums.kuban.ru/f1029/chto_izmenilos-_v_linux_za_poslednie_5_let-7761143.html)

harsh 14.06.2016 19:05

Кстати, второй хороший вопрос
что это? r/m32,r32

Добрых дел мастер 14.06.2016 20:08

>Да не ловил я вас, зачем это мне, просто спросил, а ответ плохой.
Вам не нравится - вы и страдайте.

Я вам тоже задал пару вопросов и ответ - рукалицо.

>Чего не выполняет пример, оч. любопытно.
Не обнуляет произвольную выбранную ячейку памяти (без дополнительных действий).

>Кстати, второй хороший вопрос
>что это? 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 отношения не имеет.

И после всего этого вы считаете, что имеете моральное право проверять чьи-то знания?

harsh 14.06.2016 20:29

ДДМ, Маэстро, поздравляю, вы что-то начали догонять)
Так что там про обнуление данных? Вы за, или против?

harsh 14.06.2016 20:35

37 [em]1. Зачем использовать команду xor, когда вы хотите обнулить данные.[/em]
57 [em]37-Добрых дел мастер > чета хреново вы выучили ассемблер, xor не обнуляет данные.[/em]
59 [em]2Перпетум Мобиле. щито? [/em]

ДДМ, вы понимаете полёт своей мысли?

Добрых дел мастер 14.06.2016 20:38

да, похоже я начинаю догонять, что мне скучно вести этот разговор со стенкой.

harsh 14.06.2016 20:48

Скушно догонять, что вы обкакались?
Вряд ли это скушно, скорее грустно.

kass 14.06.2016 23:13

Добрых дел мастер, ты баловался резидентами или вирусами? Вроде больше нигде экономия целого байта на операцию не была столь критична.

Добрых дел мастер 14.06.2016 23:53

1. очень давно и только в учебных целях. Ничего деструктивного не делал.
2. Еще подобные вещи применимы при написании, например, компиляторов. Оптимизация кода, и все такое. А если поднапрячься - думаю, можно еще много применений найти.
3. Дело в том, что в учебнике, по которому я занимался, это было написано так, как будто знать это абсолютно естественно.
4. Ну и ради справедливости, 1 байт - это при использовании 16-битрых команд. Чем больше разрядность - тем больше разница.

Добрых дел мастер 15.06.2016 00:02

*16-битных.

В частности, xor eax, eax - 2 байта, а mov eax, 0 - 5 байт (4 из которых - 32-битный ноль).

Перпетум Мобиле 16.06.2016 10:09

зы. что лучше применить, xor или mov нуля по факу определяет количество тактов процессора при выполнении этих команд.
и так и так работать будет, и как раз оптимизация прог на асме и сводилась к тому, чтобы работало быстрее....

Давно прошли те времена, когда что-то оптимизировали, сейчас и скорости и памяти до задницы...

kass 16.06.2016 15:53

88-Добрых дел мастер > это повезло с учебником. Мы всё это узнавали расковыривая вирусы. Ещё студентами и практически без док. Пытаясь понять как же оно работает. Антивирусы были ещё редкостью, а лечиться надо было как-то.
Ну и про один байт - это я так, утрировал. Там миллион же мелких оптимизаций был, типа однобайтового cwd вместо xor dx,dx для отдельных ф-ий int 21.

kass 16.06.2016 16:05

90-Перпетум Мобиле > я поэтому и уточнял у ДДМ не хулиганил ли он) В старые времена далеко не все задачи требовали оптимизации по скорости.
Да и сейчас старая хохма про "когда ты пишешь int вместо short - кто-то вынужден докупать планку памяти" кажется ещё актуальной.

Добрых дел мастер 16.06.2016 16:34

2Перпетум Мобиле. Вы серьезно? Зачем делать плохо, когда можно делать хорошо? Я конечно не имею в виду, что не надо писать на РНР, надо на ассемблере: тут производительность\расход памяти ставится в жертву ради быстрого написания.
Конечно же, я скорее говорю об оптимизации, выполняемой компилятором. Все-таки сейчас мало кто готов вбухать такие трудозатраты ради экономии.

2kass. Ага, повезло. А потом, когда на 1 курсе начали преподавать паскаль, у меня были серьезные проблемы из-за этого. Во-первых, я очень привык к jmp(j**) и loop, а это не православно в языках высокого уровня. Во-вторых, я пытался применить вышеуказанных xor для обнуления переменных (не понимая, что должно получиться). Ну и много всего. В общем, весело было.

harsh 16.06.2016 18:01

ДДМ, странный вы поц, ей богу, много словов, это зачем?
я бы проще сказал, одним предложением, двумя операндами для xor память не может быть
И всё)


Текущее время: 06:04. Часовой пояс GMT +3.