А все-таки...

Apr 08, 2005 125 Replies

ëÏÇÄÁ × ÐÅÒ×ÙÊ ÒÁÚ Õ×ÉÄÅÌ insult ÎÅÂÏÓØ ÞÅÌÀÓØ ÄÏ ÐÏÌÁ ÏÔ×ÉÓÁÌÁ. ôÁË ÞÅÔÏ ÎÅÆÉÇ ÔÕÔ.
ìÀÂÏÊ (ÍÎÏÇÉÅ) ÓÏ×ÒÅÍÅÎÎÙÅ e-zine. åÓÌÉ ÓËÒÏÌÌ ÎÅ ÆÒÅÊÍÏ×ÙÊ, ÜÔÏ Ö ÐÏÚÏÒ, ÎÉËÕÄÁ ÎÅ ÇÏÄÉÔÓÑ.
ôÁÍ ÄÏ ÂÁÊÔÉËÁ ×ӣ ÐÏÓÞÉÔÁÎÏ. òÁÓÐÒÅÄÅÌÅÎÉÅ ÐÁÍÑÔÉ -- ÓÔÁÔÉÞÅÓËÏÅ.
ôÏÔ ÎÉËÏÇÄÁ ÎÉÞÅÇÏ ÎÅ ÓÄÅÌÁÅÔ ÓÅÒأÚÎÏÇÏ.

Hello George.

Thu Apr 21 2005 16:00, George Shepelev wrote to Andrew O Shadoura:

AS>> Очень помогает, когда лишние метки могут захламлять код программы и AS>> ухудшать читабельность,

GS> Hе смеши меня. Hикто не мешает выбирать такие метки, что читабельность GS> только улучшится. "Hевидимость" границ цикла явно не способствует GS> читабельности...

Я для таких вещей когда-то придумал "структурные макросы". :) До сих пор иногда пользуюсь.

Dimmy.

Kirill, ты ещё здесь сидишь?

Воскресенье Апрель 24 2005 23:31, Kirill Frolov wrote to George Shepelev:

Понимаешь, в чём дело. Я не о демомейкинге говорил...

KF> Вся суть -- в хакерстве.

Ото-ж ;)

Георгий

Kirill, ты ещё здесь сидишь?

Воскресенье Апрель 24 2005 23:58, Kirill Frolov wrote to George Shepelev:

"Всё страньше и страньше". PC - это Program Counter? И зачем ему быть в памяти данных?

Отнюдь не факт.

Попробуй заменить "зилоговскую" команду

ADD HL,BC (11 тактов)

8-ми разрядной арифметикой (напоминаю, в Z80 8-ми битные суммирования работают только с аккумулятором).

KF> Даже элементарное суммирование адресов с переносом на 8 разрядах KF> быстрей.

Hа Z80 быстрей работала "специализированная" 16-ти битная арифметика.

От системы команд зависит. Можно сварганить такой "фон-нейман", что его "гарвард" с лёгкостью обойдёт по компактности кода ;)))

Георгий

Kirill, ты ещё здесь сидишь?

Понедельник Апрель 25 2005 00:03, Kirill Frolov wrote to George Shepelev:

Меня перестали удивлять хакерские извраты ещё во времена, когда компьютеры были большими, а хакерство заключалось в отладке программы путём протыкания/заклеивания дырочек в перфокартах ;)))

Опять хакерские поделки.

KF> Если скролл не фреймовый, это ж позор, никуда не годится.

Hу да, ну да. Вот только путь это - тупиковый! Комповую графику давным-давно "разгоняют" аппаратными ресурсами видеокарт...

Я не про твою любимую демку. Я про _полезные_ программы, вроде базы данных или хотя бы текстового редактора (длина строки до 80 символов, зато строк может быть 400-500)...

Ты хотел сказать, "крутой" демки под Пентагон? Так про эти "чудеса" отечественной электронной мысли уже давно забыли, народ нынче за

3D-игрушками к плэй-стэйшенам и пальмтопам гоняется...

Георгий

÷ ÔÅ ×ÒÅÍÅÎÁ ÔÅÂÑ Åݣ ÎÅ ÓÕÝÅÓÔ×Ï×ÁÌÏ.
åÓÌÉ èÁËÅÒÓËÉÅ, ÔÏ Ó ÚÁÇÌÁ×ÎÏÊ ÂÕË×Ù.
÷ÓÅ ÉÇÒÏ×ÙÅ ÈÉÔÙ ÐÏÓÌÅÄÎÉÈ 10 ÌÅÔ, ÄÌÑ ÐÌÁÔÆÏÒÍÙ ÐÃ, ÄÏÓÔÉÇÁÌÉ ÕÓÐÅÈÁ ÏÔÎÀÄØ ÎÅ ÚÁ ÓޣÔ ÒÅÓÕÒÓÏ× ×ÉÄÅÏËÁÒÔ. òÅÓÕÒÓ ËÏÎÅÞÎÏ ÎÕÖÅÎ, ÎÏ ÅÇÏ ÏÄÎÏÇÏ ÄÁÌÅËÏ ÎÅÄÏÓÔÁÔÏÞÎÏ. Doom, Duke Nukem, Quake (I) -- ËÁËÏÊ ÒÅÓÕÒÓ?
ôÅÂÅ ÐÒÉ×ÅÓÔÉ ÐÒÉÍÅÒ ÌÀÂÉÍÏÇÏ ÁÏÎÁ?
ïÎÉ ÒÅÁÌÉÚÕÀÔÓÑ ÎÁ ÔÅÈ ÖÅ ÐÒÉÎÃÉÐÁÈ. óÏ×ÒÅÍÅÎÎÏÅ ÖÅÌÅÚÏ ÂÅÚ ÈÁËÅÒÓÔ×Á ÎÁ ÔÁËÏÅ ÎÅ ÓÐÏÓÏÂÎÏ. ÷ÏÎ ÐÏÄ ÌÉÎÕÈ doom ÐÅÒÅÐÉÓÁÌÉ. òÅÓÕÒÓÏ× ÎÕÖÎÏ ËÁË ÄÌÑ quake-III.

úÁÔÅÍ, ÞÔÏ ÜÔÏ ÒÅÇÉÓÔÒ ËÏÓ×ÅÎÎÏÊ ÁÄÒÅÓÁÃÉÉ Ó Á×ÔÏÉÎËÒÅÍÅÎÔÏÍ.
ñ ÔÏ ÈÏÒÏÛÏ ÚÎÁÀ Ï ޣÍ ÇÏ×ÏÒÀ. ðÒÉ ÔÉÐÉÞÎÙÈ ÏÐÅÒÁÃÉÑÈ "16-ÂÉÔ ÕËÁÚÁÔÅÌØ ÐÌÀÓ/ÍÉÎÕÓ ÎÅÂÏÌØÛÁÑ ËÏÎÓÔÁÎÔÁ" ÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÁ ÉÍÅÎÎÏ 8-ÒÁÚÒÑÄÎÁÑ ÁÒÉÆÍÅÔÉËÁ. é ÓÐÏÒÉÔØ ÓÍÙÓÌÁ ÎÅ ×ÉÖÕ.

Kirill, ты ещё здесь сидишь?

Вторник Апрель 26 2005 08:38, Kirill Frolov wrote to George Shepelev:

Hу мне-то виднее, в какие времена _я_ существовал ;)))))))))

"Отрихтовать" перфокарту и прогнать её через "дупликатор", было куда быстрее, чем выстаивать очередь в перфораторскую. Hо в результате зачастую не существовало правильного исходника в бумажном виде. К счастью вскоре появились удалённые терминалы и про перфокарты стали забывать...

Скорее "кульхацкерские" ;)

А отчего-ж в обзорах компьютерной тематики постоянно сравнивают скорость работы "хитов" на "навороченных" видеокартах? И даже не пытаются сравнивать на карточках 10-ти летней давности? ;)))

KF> Ресурс конечно нужен, но его одного далеко недостаточно. KF> Doom, Duke Nukem, Quake (I) -- какой ресурс?

Ты бы ещё диггер и арканоид вспомнил ;)))

Hынче народ гоняет Doom 3, Far Cry, Half Life 2 и т.п., стараясь включить побольше эффектов и восхищаясь протисовкой теней, воды и прочими вещами, о которых в твоих "хитах" даже не мечтали...

Зачем? Это вещь в себе, к тому же изрядно устаревшая. Кстати, у меня сохранилась дизассемблированная версия _хорошей_ версии АОH'а на Z80, там нет извратов, которые ты рекламировал...

Hет. "Железо" слишком разнообразно, чтобы эти принципы работали. Hа смену "кульхацкерским" извратам пришёл более профессиональный подход. Вместо идеи "у вас неправильный компьютер, выкиньте его и купите "кошерный" Пентагон" пришла идея о корректной работе софта на максимально широком круге "железа". Совершенно правильная идея!

Георгий

Kirill, ты ещё здесь сидишь?

Вторник Апрель 26 2005 08:44, Kirill Frolov wrote to George Shepelev:

И в каких, позвольте, однокристаллках он размещён в памяти данных? ;-)

Хорошо маскируешь знания? А зачем? ;)

KF> При типичных операциях "16-бит указатель плюс/минус небольшая KF> константа" более эффективна именно 8-разрядная арифметика.

Жаль только, процессор ты в этом ни за что не убедишь, и использование обращений IX+n или IY+n приведёт к лишним 12 тактам (а полноценная 16-ти битная арифметика над HL требует всего 11 тактов).

KF> И спорить смысла не вижу.

Я - тем более не вижу, ведь конкретные примеры наглядно показывают, что ты неправ...

Георгий

x51 Ó ×ÎÅÛÎÉÍ úõ.

åÓÔØ ÎÅËÉÅ "ÛÁÂÌÏÎÙ ËÏÄÉÒÏ×ÁÎÉÑ" ÄÌÑ Z80. ëÏÄ ÄÁ×ÎÏ ×ÙÄÁ×ÌÅÎÎÙÊ ÄÏ ÐÏÓÌÅÄÎÅÇÏ ÔÁËÔÁ ÍÎÏÇÉÍÉ ÌÀÄØÍÉ. âÏÒÃÁÍ Ó ÈÁËÅÒÓÔ×ÏÍ ÜÔÏÇÏ ÎÅ ÐÏÎÑÔØ. äÌÑ ÔÅÂÑ ÈÁËÅÒÓÔ×Ï, ÄÌÑ ÍÅÎÑ -- ÏÐÔÉÍÉÚÁÃÉÑ.
çÄÅ Ñ ÞÔÏ-ÔÏ ÐÒÏ IX ÇÏ×ÏÒÉÌ? é IX ÔÏÖÅ ÜËÏÎÏÍÉÔ ÍÎÏÇÏ. ó-ËÏÍÐÉÌÑÔÏÒÕ. á ÐÏÌÎÏÃÅÎÎÁÑ ÁÒÉÆÍÅÔÉËÁ ÎÅ ÔÒÅÂÕÅÔ ÔÁËÉÈ ×ÅÝÅÊ, ËÁË ÈÒÁÎÅÎÉÅ ÇÄÅ-ÌÉÂÏ ÁÄÒÅÓÏ× É ÉÈ ÚÁÇÒÕÚËÁ × ÒÅÇÉÓÔÒÙ? á ÒÅÇÉÓÔÒÏ×-ÔÏ ÍÁÌÏ. POP + ADD HL ÕÖÅ ÏÂÇÏÎÑÀÔ ÁÄÒÅÓÁÃÉÀ ÞÅÒÅÚ IX. ñ ÓËÁÚÁÌ -- ÔÏÌØËÏ ÄÌÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÇÏ ÄÏÓÔÕÐÁ -- É ÎÅ ÓÐÏÒØ.
ðÒÉÍÅÒÙ × ÓÔÕÄÉÀ.

äÏÒÁÓÔÉ ÓÎÁÞÁÌÁ ÈÏÔØ ÂÙ ÄÏ ËÕÌØÈÁËÅÒÓÔ×Á.
äÌÑ Õ×ÅÌÉÞÅÎÉÑ ÏÂߣÍÏ× ÐÒÏÄÁÖ.
òÅÁÌÉÚÁÃÉÑ ÁÒËÁÎÏÉÄÁ ÎÁ ÔÏÍ ÖÅ zx "× ÌÏÂ" ÔÏÖÅ ÎÅ×ÏÚÍÏÖÎÁ.
ôÅÍ ÎÅ ÍÅÎÅÅ, ÒÅÁÌÉÚÁÃÉÑ ÔÏÊ ÖÅ quake "× ÌÏÂ" -- ÎÅ×ÏÚÍÏÖÎÁ.
ôÏ-ÔÏ ÖÅ ÓÏ×ÒÅÍÅÎÎÙÅ ÄÅÍÙ ÒÔÅÂÕÀÔ ÚÁÐÕÓËÁ ËÔÏ ÎÁ nvidia, ËÔÏ ÎÁ ati...

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to George Shepelev on Thu, 28 Apr 2005 19:41:01

+0400:

KF>>>>>>> Зато PC там не расположен. >>>>>> Где "там"? KF>>>>> В памяти данных. >>>> "Всё страньше и страньше". PC - это Program Counter? И зачем >>>> ему быть в памяти данных? KF>>> Затем, что это регистр косвенной адресации с KF>>> автоинкрементом. >> И в каких, позвольте, однокристаллках он размещён в памяти >> данных? ;-)

KF> x51 с внешним ЗУ.

Можно узнать адрес памяти данных, по которой расположен PC в x51?

dima

formatting link

Hi!

In a message of 27 Apr 05 George Shepelev wrote to Kirill Frolov:

GS> öÁÌØ ÔÏÌØËÏ, ÐÒÏÃÅÓÓÏÒ ÔÙ × ÜÔÏÍ ÎÉ ÚÁ ÞÔÏ ÎÅ ÕÂÅÄÉÛØ, É ÉÓÐÏÌØÚÏ×ÁÎÉÅ GS> ÏÂÒÁÝÅÎÉÊ IX+n ÉÌÉ IY+n ÐÒÉ×ÅģÔ Ë ÌÉÛÎÉÍ 12 ÔÁËÔÁÍ (Á ÐÏÌÎÏÃÅÎÎÁÑ GS> 16-ÔÉ ÂÉÔÎÁÑ ÁÒÉÆÍÅÔÉËÁ ÎÁÄ HL ÔÒÅÂÕÅÔ ×ÓÅÇÏ 11 ÔÁËÔÏ×).

GS> ñ - ÔÅÍ ÂÏÌÅÅ ÎÅ ×ÉÖÕ, ×ÅÄØ ËÏÎËÒÅÔÎÙÅ ÐÒÉÍÅÒÙ ÎÁÇÌÑÄÎÏ ÐÏËÁÚÙ×ÁÀÔ, GS> ÞÔÏ ÔÙ ÎÅÐÒÁ×...

äÁÎÏ: ÂÅÚÚÎÁËÏ×ÙÊ ÉÎÄÅËÓ × ÍÁÓÓÉ×Å ÂÁÊÔ × A, ÁÄÒÅÓ ÎÁÞÁÌÁ ÍÁÓÓÉ×Á ÉÚ×ÅÓÔÅÎ (ÍÅÔËÁ), ÐÏÓÞÉÔÁÔØ × HL ÁÄÒÅÓ ÜÌÅÍÅÎÔÁ, ÕËÁÚÁÎÎÙÊ × A. ÷ÒÅÍÑ ÐÏÛÌÏ. =)

Bye...

Fri Apr 29 2005 02:45, Dmitry Orlov wrote to Kirill Frolov:

KF>>>> Затем, что это регистр косвенной адресации с KF>>>> автоинкрементом. >>> И в каких, позвольте, однокристаллках он размещён в памяти >>> данных? ;-) KF>> x51 с внешним ЗУ. DO> Можно узнать адрес памяти данных, по которой расположен PC в x51?

Имеется в виду -- указывает туда.

Fri Apr 29 2005 08:50, Vadik Akimoff wrote to George Shepelev:

VA> Дано: беззнаковый индекс в массиве байт в A, адрес начала массива VA> известен (метка), посчитать в HL адрес элемента, указанный в A. Время VA> пошло. =)

ld e, a add a, l ld d, 0 ld l, a add hl, de adc a, h ------------- sub l итого: 22x4 ld h, a (push de: pop de) ---------- (итого: 43x6) итого: 20x5

Плохой пример.

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Fri, 29 Apr 2005 10:57:18

+0000 (UTC):

KF> Fri Apr 29 2005 02:45, Dmitry Orlov wrote to Kirill Frolov:

KF>>>>> Затем, что это регистр косвенной адресации с KF>>>>> автоинкрементом. >>>> И в каких, позвольте, однокристаллках он размещён в памяти >>>> данных? ;-) KF>>> x51 с внешним ЗУ. DO>> Можно узнать адрес памяти данных, по которой расположен PC в DO>> x51?

KF> Имеется в виду -- указывает туда.

Ни фига подобного. Указывает он как раз в память кода, которую можно снаружи разместить по тем же адресам, что и память данных (а можно и по другим). А расположен он вообще в неадресуемой памяти.

dima

formatting link

Hi!

In a message of 29 Apr 05 Kirill Frolov wrote to me:

VA>> äÁÎÏ: ÂÅÚÚÎÁËÏ×ÙÊ ÉÎÄÅËÓ × ÍÁÓÓÉ×Å ÂÁÊÔ × A, ÁÄÒÅÓ ÎÁÞÁÌÁ ÍÁÓÓÉ×Á VA>> ÉÚ×ÅÓÔÅÎ (ÍÅÔËÁ), ÐÏÓÞÉÔÁÔØ × HL ÁÄÒÅÓ ÜÌÅÍÅÎÔÁ, ÕËÁÚÁÎÎÙÊ × A. ÷ÒÅÍÑ VA>> ÐÏÛÌÏ. =)

KF> ld e, a add a, l KF> ld d, 0 ld l, a KF> add hl, de adc a, h KF> ------------- sub l KF> ÉÔÏÇÏ: 22x4 ld h, a KF> (push de: pop de) ---------- KF> (ÉÔÏÇÏ: 43x6) ÉÔÏÇÏ: 20x5

KF> ðÌÏÈÏÊ ÐÒÉÍÅÒ.

HÕ ×Ï-ÐÅÒ×ÙÈ Ñ ÐÒÏ ÓÏÄÅÒÖÉÍÏÅ HL ÄÏ - ÎÉÞÅÇÏ ÎÅ ÇÏ×ÏÒÉÌ, Á ÓËÁÚÁÌ ÉÍÅÎÎÏ ÐÒÏ ÍÅÔËÕ, ÔÁË ÞÔÏ ÐÒÉÍÅÒ ÈÏÒÏÛÉÊ, Á ×Ï-×ÔÏÒÙÈ ÎÅ ÐÏÄÓËÁÚÙ×ÁÊ ÅÍÕ! =)=)=)

Bye...

Hi!

In a message of 25 Apr 05 Kirill Frolov wrote to George Shepelev:

KF> ëÏÇÄÁ × ÐÅÒ×ÙÊ ÒÁÚ Õ×ÉÄÅÌ insult ÎÅÂÏÓØ ÞÅÌÀÓØ ÄÏ ÐÏÌÁ ÏÔ×ÉÓÁÌÁ. ôÁË KF> ÞÅÔÏ ÎÅÆÉÇ ÔÕÔ.

äÕÍÁÅÛØ, Õ ÎÅÇÏ ÏÎÏ ÚÁÒÁÂÏÔÁÌÏ? :)

Bye...

Hi!

In a message of 26 Apr 05 George Shepelev wrote to Kirill Frolov:

KF>> ôÙ × ÄÅÍÏÍÅÊËÉÎÇÅ ÎÉÞÅÇÏ ÎÅ ÐÏÎÉÍÁÅÛØ. ôÁË ÞÔÏ ÎÅÆÉÇ ÔÕÔ.

GS> ðÏÎÉÍÁÅÛØ, × ޣÍ ÄÅÌÏ. ñ ÎÅ Ï ÄÅÍÏÍÅÊËÉÎÇÅ ÇÏ×ÏÒÉÌ...

á Ï ޣÍ? ï ÓÄÏÈÛÉÈ ÁÏÎÁÈ ÎÁ z80? éÌÉ Ï ÓÄÏÈÛÉÈ ×ÓÑËÉÈ ÔÁÍ ÂÁÚÁÈ ÄÁÎÎÙÈ É ÓÉËÏÍÐÉÌÑÔÏÒÁÈ? á ÄÅÍÏÍÅÊËÅÒÓÔ×Ï ÎÅ ÓÄÏÈÌÏ, ÓÔÒÁÎÎÏ, ÎÅ ÐÒÁ×ÄÁ ÌÉ?...

Bye...

Kirill, ты ещё здесь сидишь?

Четверг Апрель 28 2005 19:41, Kirill Frolov wrote to George Shepelev:

Чушь. В x51 регистр PC - аппаратный!

Я _хорошо_ знаю, что такое хакерство. В т.ч. на личном опыте. И, если бы ты был более внимателен, выступаю исключительно против _неоправданного_ хакерства: "кульхацкерства", искусства ради искусства.

Чуть раньше.

KF> И IX тоже экономит много.

Hет. Он делает код чуть более наглядным. Hо код занимает больше места и (как правило) выполняется медленее.

KF> С-компилятору.

А мы разве говорили о C компиляторах?

KF> А полноценная арифметика не требует таких вещей, как хранение где-либо KF> адресов и их загрузка в регистры?

Зависит.

KF> А регистров-то мало.

Смотря для чего. В процессе работы приобретаются навыки оптимизации, как организовать алгоритм, что разместить в регистрах, что подставлять в виде литералов, а что и держать в памяти.

KF> POP + ADD HL уже обгоняют адресацию через IX.

"Кульхацкерство". Увижу такой код в серьёзном проекте - буду больно бить по рукам.

Лехко!

ADD HL,BC ; адресация к следующему "начальному" элементу 11 тактов CP (HL) ; проверка совпадения 7 тактов JR Z,value_ok ; значение найдено 12 тактов при совпадении ; 7 тактов при несовпадении INC (HL) ; модификация элемента 11 тактов ; итого 36 тактов

value_ok: INC HL ; следующий за "начальным" элемент 6 тактов LD D,(HL) ; считывание значения для обработки 7 тактов LD (HL),E ; модификация хранившегося элемента 7 тактов ; итого 50 тактов

-------------------------

CP (IX+n) ; 19 тактов JR Z,value_ok ; 12 тактов при совпадении ; 7 тактов при несовпадении INC (IX+n) ; 23 такта ; итого 49 тактов

value_ok: LD D,(IX+n+1) ; 19 тактов LD (IX+n+1),E ; 19 тактов ; итого 69 тактов

Формально команд меньше. Фактически - код более громоздкий и выполняется медленней. Hасмотрелся на подобную "оптимизацию" в АОH'овских прошивках...

Георгий

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required