Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1198666689
авыф
2007-12-26 13:58
2008.01.27
query


1-1193126736
Prohodil Mimo
2007-10-23 12:05
2008.01.27
TMonthCalendar - как определить click на день


15-1198397361
Evanescence
2007-12-23 11:09
2008.01.27
Помогите выбрать сервер для сайта


2-1198472251
mikola
2007-12-24 07:57
2008.01.27
индикатор загрузки отправки


2-1198490583
AlinaVK
2007-12-24 13:03
2008.01.27
CreateGUID