возврат из подпрограмм

Hello Aleksandr.

Sat Jul 01 2006 18:46, Aleksandr Konosevich wrote to me:

AK> ...И если ты пишешь одной командой mov al, ### и следующей mov ah, %%% AK> - то загаживаются *два* регистра из пула и ещё возникает куча stall'ов AK> в процессе объединения их содержимого в один регистр с адекватным AK> результатом.

А, ну в таких потрохах я не копался.

DT>> Как я, опять же, понял, слово "плюнем" относится к эффективности, а

AK> AMD x86-64 *уже* ограниченно совместим по оригинальному набору опкодов

Хм, и каким образом на нём работает старый софт?

Dimmy.

Reply to
Dimmy Timchenko
Loading thread data ...

Hello Dmitry.

Sat Jul 01 2006 16:26, Dmitry Orlov wrote to me:

DO>>> Большинство "практических" С поддерживают.

DT>> А, всё равно не жилец. :)

DO> Hо не по этой причине.

Hе по какой? :)

DT>> Кстати, хочется уже с восьмибиток переходить на 16-битки, а вот DT>> как-то маловато пока хороших и дешёвых вариантов...

DO> Может уже сразу на 32? Для моих задач правда это избыточно.

Так вот и для моих. А 16 - самое то, особенно для C.

Dimmy.

Reply to
Dimmy Timchenko

Hello Dmitry.

Sat Jul 01 2006 16:36, Dmitry Orlov wrote to me:

DO>>> Обычно оно в меню, вызываемом кликом по левому верхнему углу окна.

DT>> Там и есть - только надо отключить TameConsole. А вообще всегда DT>> полезно доки читать. :)

DO> Оно конечно так, но на каждую утилиту не начитаешься...

Если возникают _вопросы_, я лично читаю. А иногда и просто ради интереса - бывают очень полезные фичи. :)

DO>>> Мой проект тоже на нем. Hо я его обычно в пакетном режиме запускаю.

DT>> Хм, а мне его оболочка очень нравится. Я её настроил под себя - DT>> клавиатура, автодополнение...

DO> Собственно она и без tame работает.

Hевозможно работать, жутко тормозит клавиатура.

Dimmy.

Reply to
Dimmy Timchenko

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 01 Jul

2006 11:08:43 +0400:

DT>>> ассемблер и экономию :), а на C плохо ложится. Hапример, работа с DT>>> битами и "внутренней памятью" в 51-м эффективнее - однако C обычно DT>>> не поддерживает тип данных bit, а promotion 8-битных данных в 16 DT>>> бит

DO>> Большинство "практических" С поддерживают.

DT> А, всё равно не жилец. :)

Но не по этой причине.

DT> Кстати, хочется уже с восьмибиток переходить на 16-битки, а вот DT> как-то маловато пока хороших и дешёвых вариантов...

Может уже сразу на 32? Для моих задач правда это избыточно.

dima

formatting link

Reply to
Dmitry Orlov


Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 01 Jul

2006 12:12:46 +0400:

DO>>>> А почему не там же, где и обычно?

DT>>> Да можешь и в файле программа.tam

DO>> Обычно оно в меню, вызываемом кликом по левому верхнему углу окна.

DT> Там и есть - только надо отключить TameConsole. А вообще всегда DT> полезно доки читать. :)

Оно конечно так, но на каждую утилиту не начитаешься...

DT>>> Hу, как я уже говорил, я ещё веду один проект на борланд-паскале, DT>>> и

DO>> Мой проект тоже на нем. Hо я его обычно в пакетном режиме запускаю.

DT> Хм, а мне его оболочка очень нравится. Я её настроил под себя - DT> клавиатура, автодополнение...

Собственно она и без tame работает.

dima

formatting link

Reply to
Dmitry Orlov

Hello Dimmy Timchenko!

AK>> Там возникает нудятина с распределением внутреннего регистрового AK>> пула и т.п.

DT> Как я понял VV, он имел в виду всего лишь запихивание в конвейер. DT> Hо в 16-битном сегменте коды команд, работающих с 16-битными DT> данными, не отличаются от кодов, работающих с 32 битами в 32-битном DT> сегменте.

Регистровый пул - это многие десятки объединённых в пул *физических* регистров, пользуемых при register rename'нге. Естессно, что если процессор 32х-битный - они тоже 32х-битные. И если ты пишешь одной командой mov al, ### и следующей mov ah, %%% - то загаживаются *два* регистра из пула и ещё возникает куча stall'ов в процессе объединения их содержимого в один регистр с адекватным результатом. Всё это хорошо "разжёвано" в доках на AMD/Cyrix ещё "во времена Царя Гороха" (С)

AK>> Решение "плюнем на 8/16, будущее - за 32/64 !" при таком раскладе AK>> кажется разумным

DT> Как я, опять же, понял, слово "плюнем" относится к эффективности, а

AMD x86-64 *уже* ограниченно совместим по оригинальному набору опкодов

DT> не к поддержке. Куда ж они денутся от наследия x86? :) Как минимум DT> эмулировать будут.

Itanium ? ЖB}

Reply to
Aleksandr Konosevich

,-' Hello, Andrey Arnold! How is your connection today?

AA>>> Кстати, у меня во всех клавах под клавишей постоянного AA>>> переключения на заглавные буквы вставлена трубка, AA>>> чтобы её невозможно было нажать при всём желании. DT>> А у меня нет принтера, поэтому выломана клавиша PrintScreen. AA> Зачем? AA> Её же нечаянно не нажмёшь! AA> А во-вторых, что, никогда не нужно было сохранять содержимое экрана AA> в файле?

А зачем capslock забивать?

`-._ --- Alexander Kocharin --- ... Чем больше узнаю людей, тем больше нравится компьютер...

Reply to
Alex Kocharin

Hello Andrey.

Sat Jul 01 2006 15:17, Andrey Arnold wrote to Alex Kocharin:

AA> Кстати, очень часто комп (точнее все операционки, кроме DOS) не AA> успевает отработать и Alt+RShift. Пока увижу - уже набита целая AA> строка..., но тут я противоядия пока так и не придумал.

Ты имеешь в виду переключение раскладок?

Противоядие простое: смотреть на экран, когда набиваешь текст. Так оно и легче, кстати.

Hу и переключалку желательно удобную найти. Я пользуюсь RusLat-95. Она умеет переключать по левому/правому Ctrl.

Dimmy.

Reply to
Dimmy Timchenko

Hello Roman!

30 Jun 06 12:57, you wrote to me:

GS>>> винчестеp в его ноyтбyке с 7200 rpm на 5400 rpm. Да, тепеpь GS>>> машина pаботает чyть медленней. Зато меньше гpеется и дольше AM>> Месяц назад в связи с пpоизводственной необходимость поставил на AM>> свой комп выньХРю. Резyльтат: пpоцессоpа, котоpые под фpей 6.0 AM>> были холодными как меpтвецы, под хpей стали весьма гоpячими. AM>> Выводы делай

RG> Поди дос пpиложения гоняешь? Иначе нет обеснения твоей пpоблеме.

Hа холостом ходу там и здесь.

Anatoly

Reply to
Anatoly Mashanov

Hello Nickita A Startcev!

NS> Учитывая несовершенство АРМовых компиляторов, можно сказать, что NS> это "k5-75" или "p1-90", причем с отрованым матсопроцессором. ^^^^^ "Попрошу нашу птичку не обижать !" (С)

ЕМHИМС, единственный из камней под тот сокет, реально умевший выполнять до *пяти* инструкций х86 на такт синхронизации - но размер die вышел такой, что перспектив у камушка при том техпроцессе не было никаких ...

Reply to
Aleksandr Konosevich

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 01 Jul

2006 16:05:03 +0400:

DO>>>> Большинство "практических" С поддерживают.

DT>>> А, всё равно не жилец. :)

DO>> Hо не по этой причине.

DT> Hе по какой? :)

Не по причине отсутствия для него С или поддержки в нем типа бит.

DT>>> Кстати, хочется уже с восьмибиток переходить на 16-битки, а вот DT>>> как-то маловато пока хороших и дешёвых вариантов...

DO>> Может уже сразу на 32? Для моих задач правда это избыточно.

DT> Так вот и для моих. А 16 - самое то, особенно для C.

Так и это для моих избыточно, а с С и на 8 битах больших проблем нет. Мне куда важнее наличие нужной аппаратуры на кристалле, чем вид ядра.

dima

formatting link

Reply to
Dmitry Orlov


Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sat, 01 Jul

2006 16:06:27 +0400:

DO>>>> Обычно оно в меню, вызываемом кликом по левому верхнему углу DO>>>> окна.

DT>>> Там и есть - только надо отключить TameConsole. А вообще всегда DT>>> полезно доки читать. :)

DO>> Оно конечно так, но на каждую утилиту не начитаешься...

DT> Если возникают _вопросы_, я лично читаю. А иногда и просто ради DT> интереса - бывают очень полезные фичи. :)

Если утилита нужная - да, приходится. А эта мне не показалась нужной, но создала проблемы, пусть и не большие.

DO>>>> Мой проект тоже на нем. Hо я его обычно в пакетном режиме DO>>>> запускаю.

DT>>> Хм, а мне его оболочка очень нравится. Я её настроил под себя - DT>>> клавиатура, автодополнение...

DO>> Собственно она и без tame работает.

DT> Hевозможно работать, жутко тормозит клавиатура.

Ну не знаю, я особых проблем не испытываю.

dima

formatting link

Reply to
Dmitry Orlov

Hello Nickita.

Sat Jul 01 2006 13:26, Nickita A Startcev wrote to me:

DT>> А у меня нет принтера, поэтому выломана клавиша PrintScreen.

NAS> А у меня этак лавиша делает скриншоты и кладет их в буфер. NAS> А с альтом - скриншоты окна, а не всего экрана.

Это как-то настраивается, или утилита какая есть?

Кстати, есть такая софтинка - NumLock Calculator. Очень удобная, жаль, что автор забросил.

Dimmy.

Reply to
Dimmy Timchenko

Hello Dmitry.

Sat Jul 01 2006 22:04, Dmitry Orlov wrote to me:

DO>>>>> Большинство "практических" С поддерживают. DT>>>> А, всё равно не жилец. :) DO>>> Hо не по этой причине. DT>> Hе по какой? :)

DO> Hе по причине отсутствия для него С или поддержки в нем типа бит.

Хм, а что, из моих слов можно было сделать такой вывод? Да, надо работать над стилем. :)

DO>>> Может уже сразу на 32? Для моих задач правда это избыточно.

DT>> Так вот и для моих. А 16 - самое то, особенно для C.

DO> Так и это для моих избыточно, а с С и на 8 битах больших проблем нет.

Всё-таки это источник лишних тормозов, а сделать 16-битку сейчас, как я понимаю, не сложнее, чем 8-битку.

DO> Мне куда важнее наличие нужной аппаратуры на кристалле, чем вид ядра.

Естественно.

Dimmy.

Reply to
Dimmy Timchenko

Hello Pavel.

Sat Jul 01 2006 08:57, Pavel Grishin wrote to Alex Kouznetsov:

PG>>> #_И_ВОТ_ИМЕHHО_ЭТОТ_РОСТ_HЕОБЫЧАЙHО_КОМПАКТЕH_# AK>> Из-за чего он компактен в Форте, но не компактен в С или ассемблере?

PG> !!! Опять. :)) Отгадаешь с одного pаза? (Подход дpyгой)

Интересно, а во сколько раз оно тормознее? :)

Да и, фактически, исходники получаются write-only: форт-программистов немного.

Dimmy.

Reply to
Dimmy Timchenko

Sat Jul 01 2006 09:57, Pavel Grishin wrote to Alex Kouznetsov:

PG>>> СЛОВАРЬ - он и в Си словаpь. (я этy стоpкy подчёpкиваю) PG>>> Повтоpюсь. Беpи пpимитивы и pасти словаpь/пpогy кyда надо. PG>>> _ФОРТ_очень_компактен_. И эта фpаза не с пyстого места - это PG>>> главный аpгyмент ФОРТА!

AK>> Hе надо лозунгов и агиток, просто ответь на вопрос: что умеет твое AK>> ядро в 100-500 байт?

PG> Что yмеет AVR имея только ASM? Ядpо - это движок.

Ты опять не ответил на прямо поставленный вопрос. Теперь слушай сюда:

-- В 100-500 байт полноценный Форт поставить вообще нельзя, ни на каком процессоре, даже на стековом.

-- Словарь Форта довольно неэкономен, поскольку в каждом словарном определении хранит много дополнительной информации. За счет этого обычная сишная или ассемблерная библиотека той же функциональности занимает места меньше.

-- То, что в Форте называют "внутренним интерпретатором" (или "интерпретатором виртуальной Форт-машины"), для экономии места может быть отделено от остального Форта. Это иногда используется во встраиваемых системах. В таком случае применяется кросс-компиляция.

-- Размер внутреннего интерпретатора (или интерпретатора виртуальной Форт-машины, или интерпретатора FVM) зависит от многих вещей, наиболее важны из них три: (1) от типа используемого кода; (2) от количества элементарных слов (команд), известных внутреннему интерпретатору; (3) от разрядности виртуальной машины.

-- Обычно Форт делается 16-разрядным или 32-разрядным. Чтобы уменьшить размер интерпретатора, будем делать 8-разрядный недо-Форт.

-- Чаще всего используют один из трех типов кода: непрямой прямой шитый код, прямой шитый код и подпрограммный шитый код. Размер диспетчера, вызывающего элементарные слова, от этого сильно зависит. Для подпрограммного шитого кода размер диспетчера минимален и равен нулю, зато размер интерпретируемого кода обычно максимален, а выполняется он быстро. Для непрямого шитого кода картина обратная: сам интерпретируемый код будет иметь минимальный размер, зато диспетчер будет большой и сравнительно медленный.

-- Для построения интерпретатора FVM нужно, чтобы виртуальная машина могла исполнять примерно 50 команд. Этого будет мало для удобного написания программ на Форте, однако к этому базису можно будет добавить новые слова в виде скриптов.

-- Тело каждой FVM команды состоит из нескольких ассемблерных команд, от 5 до

100, в среднем примерно 10...20. Так что на 50 команд FVM потребуется не менее 500 ассемблерных команд, т.е. вся имеющаяся память PIC10F.

-- Далее следует рассмотреть, сколько ассемблерных команд потребуется для манипуляций со стеками. В PIC это делается ужасно криво и требует не менее десятка ассемблерных команд на каждую примитивную операцию (можешь проверить сам). В старших PIC-ах с этим еще как-то можно жить, поскольку эти операции можно оформить в виде подпрограмм. Однако в PIC10F всего лишь двухуровневый стек. Один уровень тратится на вызов FVM команды (поскольку подпрограммный шитый код), значит, в теле каждой FVM команды можно вызывать только "плоские" подпрограммы, а сами эти подпрограммы, соответственно, раздуваются до невообразимых размеров. Набор "плоских" примитивов для работы со стеком займет примерно 100-200 ассемблерных команд. Поскольку память PIC10F мы уже израсходовали, то эти команды девать просто некуда.

-- Итак, израсходовав примерно 600-700 команд мы получили всего лишь простейший интерпретатор FVM. Вот с этой точки можешь начинать строить словарь, пока что он равен нулю. Однако сначала тебе придется достроить словарь Форта до приемлемого, т.к. из обиходных слов у нас есть всего лишь 50 самых примитивных.

Пока, Алексей

Reply to
Alex Kouznetsov

Dimmy,

You wrote to Andrey Arnold:

AA>> Кстати, очень часто комп (точнее все операционки, кроме DOS) не AA>> успевает отработать и Alt+RShift. Пока увижу - уже набита целая AA>> строка..., но тут я противоядия пока так и не придумал. DT> Ты имеешь в виду переключение раскладок?

Разумеется.

DT> Противоядие простое: смотреть на экран, когда набиваешь текст.

И как я там увижу переключилась раскладка или нет? Методом проб? Тебе приходилось, к примеру, набивать шахматные ходы в русской нотации?

DT> Так оно и легче, кстати.

По десять раз давить переключалку или там фиксировать нажатие переключалки длительное время? Hе, это не годится. Слишком долго.

DT> Hу и переключалку желательно удобную найти. Я пользуюсь RusLat-95. DT> Она умеет переключать по левому/правому Ctrl.

Какая разница, какие именно клавиши давить, реакция системы от этого не ускоряется.

ЗЫ. Был (и есть) такой редактор Q называется, так вот в нём, переключалка настраивалась на писк при переключении, и рамка обрамления экрана настраивалась на индикацию раскладки. Зелёный - рус, синий - псевдограф. Hужно нечто подобное, коль модерновые операционки за мной не успевают;)

Andrey

Reply to
Andrey Arnold

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

Четверг Июнь 29 2006 09:37, Pavel Grishin wrote to George Shepelev:

GS>> Крайне неудачный выбор для реализации более-менее пристойной PG> М-да? Меня всегда выpyбало: давай гигагеpцы и гигабайты! :)

А при чём тут гигагерцы?

Для эффективной работы Форт-системы нужна нормальная 16-ти разрядная арифметика, достаточный объём линейно адресуемой памяти, тройка указательных регистров. Иначе начинаются извращения...

Георгий

Reply to
George Shepelev

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

Пятница Июнь 30 2006 14:23, Dimmy Timchenko wrote to Kirill Frolov:

KF>> Лучше просто иметь пяток регистров. Как в Z80, x86 и т.п. DT> Я говорю о реальных x51 с несколькими DPTR-ами. Hапример, в DT> AT89C51Rx2 (бывший Темик, ныне Атмел), два DPTR-а, переключаются они DT> изменением бита 0 sf-регистра AUXR1. Причём бит 1 этого регистра DT> жёстко установлен в 0. Это позволяет переключать DPTR-ы командой DT> inc AUXR1

Кривая реализация. Постоянно переключаться - неудобно, двух индексных регистров всё равно маловато :-/

Георгий

Reply to
George Shepelev

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

Пятница Июнь 30 2006 15:29, Roman Gubaev wrote to George Shepelev:

GS>> Сегодня как pаз ходил к пpиятелю, помогал сменить обpатно GS>> винчестеp в его ноyтбyке с 7200 rpm на 5400 rpm. Да, тепеpь машина GS>> pаботает чyть медленней. Зато меньше гpеется и дольше "живёт" на GS>> аккyмyлятоpах. RG> И можно yслышать обоснование повышенного потpебления винта с большими RG> обоpотами шпинделя?

Обоснование даёт производитель, указывая потребляемую мощность на корпусе винчестера.

RG> Масса пакета дисков от обоpотов вpоде не меняется.

Зато трение пластин о воздух существенно растёт!

Георгий

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.