LINUX.ORG.RU

Free Pascal 2.0


0

0

15 мая 2005 года, после 5 лет разработки вышел Free Pascal 2.0.

Поддерживаются следующие процессоры (AMD-64, SPARC, PPC (32/64 бит), ARM) и платформы (Mac OS classic, Mac OS X, MorphOS, and Novell Netware). Среди улучшений: большая совместимость с Delphi, поддержка widestrings, обновление компонент для доступа к базам данных, добавление документации и консольного IDE.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от Led

> Первые Norton Commander'ы - тоже

Первые Norton Commander'ы были писаны на ассемблере. Дядя Петя - гуру ассемблера для 8086, даже книжки по нему писал.

anonymous
()
Ответ на: комментарий от anonymous

> Первые Norton Commander'ы - тоже

>Первые Norton Commander'ы были писаны на ассемблере. Дядя Петя - гуру ассемблера для 8086, даже книжки по нему писал.

Это ДА, но... NC не дядя Петя придумал. Автор NC -- John Socha, который принёс коммандер на контору дяде Пете. Т.о., дядя Петя просто продавал его под своим брэндом. В любой древней книжке сей факт про NC указан был.

ha
()
Ответ на: комментарий от ha

>>Дядя Петя - гуру ассемблера для 8086, даже книжки по нему писал.

>Это ДА, но... NC не дядя Петя придумал.

Да и в ассемблере... "дядя Петя" такие корки в своей книжке откалывал, что мы всей общагой ржали. Как, например, вам преобразование нибла в символ (0x0..0xF -> '0' .. 'F') через таблицу? :D

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

А это, деточка, вовсе не корка. Это процентов эдак на 15-20 быстрее (сейчас), а для тогдашних процессоров - и поболее...

anonymous
()
Ответ на: комментарий от KRoN73

> Как, например, вам преобразование нибла в символ (0x0..0xF -> '0' .. 'F') через таблицу?

Ну, таблица, конечно, не фонтан... Уж лучше так:

ADD AL, 90h

DAA

ADC AL, 40h

DAA

И что самое интересное, это работает :-)

--

SVK

anonymous
()
Ответ на: комментарий от anonymous

Джентельмены, у вас совсем плохо с чувством юмора... это же шутка была! :)

anonymous
()
Ответ на: комментарий от KRoN73

>>Дядя Петя - гуру ассемблера для 8086, даже книжки по нему писал.

>Это ДА, но... NC не дядя Петя придумал.

>Да и в ассемблере... "дядя Петя" такие корки в своей книжке откалывал, что мы всей общагой ржали. Как, например, вам преобразование нибла в символ (0x0..0xF -> '0' .. 'F') через таблицу?:D

Учиться надо было, а не траву курить... Тогда, может , и не так смешно было бы. Нормальный способ , если быстродействие поджимает.

Может дашь ссылку на свои учебники/проекты ?

Мы всей командой может тоже повеселимся.

anonymous
()
Ответ на: комментарий от anonymous

> Нормальный способ , если быстродействие поджимает.

В свое время я подсчитывал такты, необходимые для применения XLAT на 88-м процессоре (по табличке в конце справочника Р. Джордейна). Если мне не изменяет память, то получалось, что XLAT + MOV BX, адрес таблицы (а уж тем более LDS BX) + затраты на сохранение и восстановление регистров --- не быстрее трюка с ADD/DAA. Ну а тем более сейчас, когда обращение в память --- потенциальный кэш-промах со всеми вытекающими.

Если я ошибаюсь --- такты в студию.

--

SVK

anonymous
()
Ответ на: комментарий от anonymous

> Как, например, вам преобразование нибла в символ (0x0..0xF -> >'0' .. 'F') через таблицу?

>Ну, таблица, конечно, не фонтан... Уж лучше так:

>ADD AL, 90h

>DAA

>ADC AL, 40h

>DAA или cmp al,10h sbb al,39h das

anonymous
()
Ответ на: комментарий от anonymous

> или cmp al,10h sbb al,39h das

Этот хак я не знал, спасибо. Правда, мой немного лучше тем, что будет работать и на i8080 и на Z80. Собственно, из спектрумовского руководства по ассемблеру я его в свое время и вытащил :-)

--

SVK

anonymous
()
Ответ на: комментарий от anonymous

Что-то не то...

C:\>debug -a 1404:0100 mov al, 3 1404:0102 cmp al, 10 1404:0104 sbb al, 39 1404:0106 das 1404:0107 -t

AX=0003 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1404 ES=1404 SS=1404 CS=1404 IP=0102 NV UP EI PL NZ NA PO NC 1404:0102 3C10 CMP AL,10 -t

AX=0003 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1404 ES=1404 SS=1404 CS=1404 IP=0104 NV UP EI NG NZ NA PE CY 1404:0104 1C39 SBB AL,39 -t

AX=00C9 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1404 ES=1404 SS=1404 CS=1404 IP=0106 NV UP EI NG NZ AC PE CY 1404:0106 2F DAS -t

AX=0063 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1404 ES=1404 SS=1404 CS=1404 IP=0107 NV UP EI PL NZ AC PE CY 1404:0107 0000 ADD [BX+SI],AL DS:0000=CD

Почему AX=0063, вроде бы надо 33h?

--

SVK

anonymous
()
Ответ на: комментарий от anonymous

Сумимасэн, как говорят японцы --- попутал форматирование...

D:\>debug
-a
1404:0100 mov al,3
1404:0102 cmp al,10
1404:0104 sbb al,39
1404:0106 das
1404:0107
-t

AX=0003  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1404  ES=1404  SS=1404  CS=1404  IP=0102   NV UP EI PL NZ NA PO NC
1404:0102 3C10          CMP     AL,10
-t

AX=0003  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1404  ES=1404  SS=1404  CS=1404  IP=0104   NV UP EI NG NZ NA PE CY
1404:0104 1C39          SBB     AL,39
-t

AX=00C9  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1404  ES=1404  SS=1404  CS=1404  IP=0106   NV UP EI NG NZ AC PE CY
1404:0106 2F            DAS
-t

AX=0063  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000
DS=1404  ES=1404  SS=1404  CS=1404  IP=0107   NV UP EI PL NZ AC PE CY
1404:0107 0000          ADD     [BX+SI],AL                         DS:0000=CD

--

SVK

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.