Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.53 MB
Время: 0.014 c
2-1198772246
Ega
2007-12-27 19:17
2008.01.27
Как прочесть текстовый файл в widestring?


15-1197969826
RUYurik
2007-12-18 12:23
2008.01.27
Добавление функции преобразования суммы прописью в FastReport 4


2-1198659999
dumka
2007-12-26 12:06
2008.01.27
Запросы


3-1190140314
lz269
2007-09-18 22:31
2008.01.27
IB6-Delphi5, проблемы с полями DATE


4-1182417999
o6619
2007-06-21 13:26
2008.01.27
IContextMenu




   Наверх