Текущий архив: 2008.01.27;
Скачать: CL | DM;
Вниз
Delphi To TP Найти похожие ветки
← →
Anatoly Podgoretsky © (2007-12-12 16:13) [40]> AlexKniga (12.12.2007 15:54:38) [38]
Откуда ты нашел реализацию Writeln - это же compiler magic
← →
AlexKniga © (2007-12-12 16:56) [41]Из модуля System.pas
procedure _WriteLn; external; { WriteStr}
Далее смотрим writestr.asm
← →
Anatoly Podgoretsky © (2007-12-12 17:02) [42]Ты читать умеешь?
Подчеркивание видишь впереди?
Посмотри там еще несколько десятков фунций подобного рода, которые компилятор вызывает на основе анализа текста WriteLn.
Сообственно даже эта функция всего лишь выводит CRLF
← →
AlexKniga © (2007-12-13 10:32) [43]Я не спорю, что компилятор хитро обрабатывает WriteLn (compiler magic). Я утверждаю то, что в компилятор НЕ зашита реализация WriteLn. В конечном итоге компилятор используется writestr.asm. Его я могу поправить, пересобрать модуль System и моя прогамма будет использовать модифицированный WriteLn.
← →
@!!ex © (2007-12-13 11:08) [44]> [43] AlexKniga © (13.12.07 10:32)
> ПРиведите пожалуйста код, который бы работал на паскале
> и реализовывал такую же работу с параметрами, как и write/read.
можно и на дельфе, даже лучше. ;)
← →
AlexKniga © (2007-12-13 11:14) [45]Еще раз. Что бы MyProc так же работала с параметрами, как и write/read, надо переписать компилятор, добавив MyProc к compiler magic (это мне не под силу :) ). Но изменив writestr.asm я изменю работу WriteLn.
← →
Anatoly Podgoretsky © (2007-12-13 11:22) [46]> AlexKniga (13.12.2007 10:32:43) [43]
И что, то что код функций ввода/вывода вшит в компилятор, обычно это делают в виде функций, это что то меняет? Так это во всех языках, ввод/вывод реализован в виде библиотек, а не вшит в компилятор, это позволяет гибко менять его.
Ты набери что ни будь посложнее WriteLn; и посмотри в CPU что на это нагенерирует компилятор.
Насчет модификации, ты можешь переписать и сам компилятор.
← →
Anatoly Podgoretsky © (2007-12-13 11:25) [47]> AlexKniga (13.12.2007 11:14:45) [45]
Наивный чукотский юноша, ты думаешь, что WriteLn это только writestr.asm - нет функций там многие десятки и кроме того writestr.asm уже давно нет. Черный Абдулла зарезал. А если ты сделаешь внешний модуль, ты думаешь, что он заменит системный, то ты тоже жестоко ошибаешься.
Какие еще хакерские мысли есть?
← →
@!!ex © (2007-12-13 11:35) [48]> AlexKniga
Вопрос о чем изначально был? :))
О том, что writeln и readln встроены в компилятор. ТАк оно и есть. Да они встроены не полностью, но встроены! И уже компилятор делит их на части и реализует стандартными методами, описанными отдельно.
← →
AlexKniga © (2007-12-13 13:52) [49]> ты думаешь, что WriteLn это только writestr.asm - нет функций там многие десятки
Эт мне известно.
> writeln и readln встроены в компилятор.
С такой я не согласен.
Вот Inc встроена в компилятор.
А writeln и readln лишь хитро обрабатываются, в итоге компилятор использует System.dcu.
← →
УКЕУКЕУКЕ (2007-12-18 20:27) [50]Удалено модератором
Страницы: 1 2 вся ветка
Текущий архив: 2008.01.27;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.016 c