- 1
Псст. А где здесь говнокод "подопьём и разговариваем про всякое"? Я, признаться, совсем одичал за последние полгода.
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
Псст. А где здесь говнокод "подопьём и разговариваем про всякое"? Я, признаться, совсем одичал за последние полгода.
cykablyad 19.08.2017 22:17 # 0
defecate-plusplus 19.08.2017 22:42 # 0
cykablyad 19.08.2017 23:51 # 0
bormand 20.08.2017 10:17 # +1
cykablyad 20.08.2017 11:30 # +1
123123123 20.08.2017 13:40 # +2
inkanus-gray 20.08.2017 19:59 # 0
cykablyad 20.08.2017 20:13 # 0
j123123 20.08.2017 20:52 # +3
cykablyad 20.08.2017 20:53 # +1
Нет бы как нормальные люди, на пхп писать
bormand 20.08.2017 22:03 # 0
cykablyad 20.08.2017 22:05 # 0
inkanus-gray 21.08.2017 01:15 # 0
[@]
Нареки его «At&t»
roman-kashitsyn 21.08.2017 09:18 # +2
Вообще в PHP можно дефайны делать, так что можно писать
inkanus-gray 21.08.2017 12:29 # +1
Про вторую часть: нельзя. Это не сишный дефайн. У PHP нет препроцессора.
Во-первых, в PHP define записывает в константу текущее значение правой части. Т. е. если даже написать а потом изменить значение $x, то значение RBX не изменится.
Во-вторых, изменять значения констант нельзя. Т. е. mov в принципе нельзя реализовать (если не ковыряться в ядре PHP).
*****
Тем не менее, есть идея, как реализовать такой синтаксис: завести глобальный массив под регистры.
Далее вставить банальные определения:
И тогда реализация mov будет совсем простой:
roman-kashitsyn 21.08.2017 13:27 # +1
Я и не думал их менять, подразумевал именно
> завести глобальный массив под регистры
Мы же передаём в mov имя регистра, имена mov не изменяет.
inkanus-gray 21.08.2017 14:41 # 0
Из PHP эту ненужную фишку собираются убрать:
https://wiki.php.net/rfc/deprecate-bareword-strings
Сколько же говнокода придётся исправлять, если разработчики PHP наконец-то вытряхнут скелет из шкафа.
d_fomenok 21.08.2017 14:46 # +1
Батенька, говнокод никто даже не будет запускать на ваших модных "PHP 7"
inkanus-gray 21.08.2017 14:53 # 0
inkanus-gray 21.08.2017 14:50 # +1
А внутри функции аргументы можно проверять с помощью is_array.
Ещё можно задефайнить регистры как числовые константы. Тогда можно будет использовать синтаксис «база+смещение»:
Только надо задать значения побольше, чтобы суммы не пересекались.
Можно ли безопасно реализовать SIB (scale-index-base), я пока не думал. Тут и с постоянным смещением (вроде mov(RAX, [RBX+8])) можно налететь на неприятности.
d_fomenok 21.08.2017 14:55 # +2
А ты попробуй переопределить оператор сложения
inkanus-gray 21.08.2017 15:09 # 0
http://pecl.php.net/package/operator
Но только для классов, а правая часть define поддерживает только скалярные типы и строки. Так что тогда придётся писать так:
d_fomenok 21.08.2017 15:35 # 0
А ты попробуй ещё и define использовать
gost 21.08.2017 16:56 # 0
Возможно, вы имели в виду «ax, bx»?
d_fomenok 21.08.2017 17:12 # 0
al, bl
defecate-plusplus 20.08.2017 21:09 # +2
а как ты провёл выходной, %username%?
bakagaijin 20.08.2017 22:22 # +2
1) дочку
2) жену, которая родила дочку
3) ПИЗДЕЦ ПИЗДЕЦ ПИЗДЕЦ
Вот, через без малого год, я пытаюсь вернуться. Аск ми, ну вот это всё.
j123123 20.08.2017 22:29 # +3
cykablyad 20.08.2017 23:07 # +3
j123123 21.08.2017 15:23 # +3
cykablyad 21.08.2017 17:55 # +1
bormand 21.08.2017 18:23 # 0
cykablyad 21.08.2017 18:25 # 0
bormand 21.08.2017 18:33 # 0
CHayT 21.08.2017 18:34 # +1
cykablyad 21.08.2017 18:41 # +1
subaru 21.08.2017 16:19 # 0
bakagaijin 20.08.2017 22:35 # 0
j123123 21.08.2017 15:38 # 0
gost 21.08.2017 16:58 # 0