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

Loading thread data ...

Hello George.

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

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

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

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

Dimmy.

Reply to
Dimmy Timchenko

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

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

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

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

Ото-ж ;)

Георгий

Reply to
George Shepelev

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-ти битная арифметика.

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

Георгий

Reply to
George Shepelev

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

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

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

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

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

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

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

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

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

Георгий

Reply to
George Shepelev

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а смену "кульхацкерским" извратам пришёл более профессиональный подход. Вместо идеи "у вас неправильный компьютер, выкиньте его и купите "кошерный" Пентагон" пришла идея о корректной работе софта на максимально широком круге "железа". Совершенно правильная идея!

Георгий

Reply to
George Shepelev

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

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

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

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

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

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

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

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

Георгий

Reply to
George Shepelev

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

Reply to
Dmitry Orlov

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

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

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

Reply to
Kirill Frolov

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

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

Reply to
Kirill Frolov

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

Reply to
Dmitry Orlov

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'овских прошивках...

Георгий

Reply to
George Shepelev

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.