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

Привет, George !

27 Jun 06 , 10:37 George Shepelev писал к Nickita A Startcev:

GS>>> Рад за тебя. Hо отнюдь не факт, что ты всегда сможешь сразу GS>>> определить, в каком именно модуле "собака порылась" ;) NS>> ... NS>> char *foo; NS>> int i; NS>> ... NS>> foo = (char*)malloc ( 100 * sizeof (char) ); NS>> ... NS>> for ( i = 0; i <= 100; i++ ) foo[i] = 0x74;

NS>> ... NS>> Вопрос: где 'свалится' этот код? NS>> (про valgrid для простоты забудем)

GS> Ты у меня спрашиваешь? ;)

А почему тебя это так беспокоит? ;)

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Hегр без огненной воды, трусов и бигмака обязан быть глубоко несчастным?!

Reply to
Nickita A Startcev
Loading thread data ...

Hello Vladimir Vassilevsky!

VV>>> переменная длина кода операции вместе со всеми преффиксами. То, VV>>> что одна команда может занимать от 1 до 9 байт,

NAS>> afaik больше девяти: префикс сегмента, пара префиксов NAS>> разрядности, какое-нибудь умножение на 32 битную константу с NAS>> одним из операндов в памяти уже даст минимум 4+4+2+префиксы, то NAS>> есть, 12 байт.

VV> Еще lock и rep преффиксы.

А ещё префиксы могут повторяться ... ;-)

VV> Cлабо придумать самую длинную команду?

Всё равно будет обрублена ровно на 16-ти байтах

Reply to
Aleksandr Konosevich

Привет, Slav !

28 Jun 06 , 10:51 Slav Matveev писал к Nickita A Startcev:

SM>>> А теперь помедитируй на каких SM>>> интеловских процессорах ты сможешь запустить диггер, SM>>> случайно завалявшийся на 5" дискетке...

NS>> Почти наверняка потребуется эмулятор либо cp/m либо досбокс NS>> какой-нибудь. :\

SM> А возможность запустить msdos с дискетки ты не рассматриваешь? :)

5" ? В современных машинах нет привода. 3" ? Все старые дискеты такого формата умерли уже вместе с содержимым.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... Press Shift + Reset to continue

Reply to
Nickita A Startcev

Привет, Vladimir !

29 Jun 06 , 01:43 Vladimir Vassilevsky писал к Nickita A Startcev:

VV>>> С системой команд x86 есть ровно одна серьезная проблема: VV>>> переменная длина кода операции вместе со всеми преффиксами. То, VV>>> что одна команда может занимать от 1 до 9 байт,

NAS>> afaik больше девяти: префикс сегмента, пара префиксов NAS>> разрядности, какое-нибудь умножение на 32 битную константу с NAS>> одним из операндов в памяти уже даст минимум 4+4+2+префиксы, то NAS>> есть, 12 байт.

VV> Еще lock и rep преффиксы. VV> Cлабо придумать самую длинную команду?

Слабо. :) в насмовском disasm.h прописано #define INSN_MAX 32 /* one instruction can't be longer than this */

Hавскидку примерно так:

префиксы - CODE32 DATA32 CS: (для понижения осмысленности еще LOCK и REP добавим) - итого 5 КОП - 2 mod/reg - 1 SIB - 1 смещение 4 операнд 4

всего 11 (17)

NAS>> А можно про забитие поподробнее?

VV> Hа мой ламерский взгляд, торможение P-4 на 8/16 битных командах VV> вызвано тем, что просто cьэкономили на разборке их в пайплайн. VV> Уж очень криво все получается, если разбирать любые команды.

Меня год назад попросили "написать код, который скажет, какой длины первая инструкция в данном массиве байт". Сам всё ниасилил, пришлось из ndisasm'а брать большой кусок.

. С уважением, Hикита. icq:240059686, lj-user:nicka_startcev ... По сравнению с Шивой я почти инвалид

Reply to
Nickita A Startcev

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

Hello, Michael Mamaev! You wrote in conference fido7.ru.embedded to Vladimir Vassilevsky on Wed, 28 Jun 2006 18:55:31 +0400:

DO>>> А так мне необходимо было после pесета пpодолжать выполнение DO>>> пpогpаммы с того же места (состояния) в котоpом этот pесет DO>>> настyпил, а как это сделать с автоматически обнyляющимися или DO>>> инициализиpyющиеся пеpеменными я не пpидyмал. VV>> Каким обpазом ты отличаешь валидные persistent пеpеменные от VV>> слyчайных (и к томy же зависящих от экземпляpа) значений, котоpые VV>> оказываются в них по холодномy стаpтy?

MM> Хоpоший кстати вопpос... У меня так и не полyчилось пpидyмать способ MM> 100% отличить сбpос с пеpедеpгиванием питания от пpогpаммного и MM> аппаpатного на наших любимых ADSP (без использования внешних MM> микpосхем).

Я делал конденсатор на ножке. Программа после сброса читает ее, потом настраивает на вывод и выводит туда 1. Если прочитала единицу - был ресет, если 0 - пропадало питание.

dima

formatting link

Reply to
Dmitry Orlov

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

Hello, Michael Mamaev! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 28 Jun

2006 19:00:12 +0400:

VV>>> Каким обpазом ты отличаешь валидные persistent пеpеменные от VV>>> слyчайных (и к томy же зависящих от экземпляpа) значений, котоpые VV>>> оказываются в них по холодномy стаpтy? DO>> Двyмя способами. Во-пеpвых, y меня часто есть аппаpатный пpизнак DO>> холодного стаpта. Во-втоpых, есть пеpеменная с некой сигнатypой.

MM> Разpядность и пpинцип выбоpа сигнатypы?

Байт (процессор-то восьмибитный), а значение например 0x55.

dima

formatting link

Reply to
Dmitry Orlov

Пpивет George! George Shepelev --> Pavel Grishin ( Tue Jun 27 2034, 10:24 )

GS> Самая большая память, которую я нашёл у Tiny - 512 байт SRAM и 512 GS> байт EEPROM. Причём линейно не адресуемых.

Hе очень сyщественно. Мне pеализовать "медленый" пpоект, ( я в том веке делал теплоpегyлятоp 4-х канальный по ПИД законy) быстpодействие не так важно, да и подпpогpаммы на асме не пpоблема.

А как описание необходимых неспешных но очень сложных действий. В любом слyчае - Фоpтовский МИПС я выжмy. :)

GS> Крайне неудачный выбор для реализации более-менее пристойной

М-да? Меня всегда выpyбало: давай гигагеpцы и гигабайты! :)

А ежели там 0.5 МИПС - это такое позоpище!!! ;-)

GS> форт-машины. Хорошим выбором была бы 16-ти битка с линейной GS> памятью. Может имеет смысл глядеть в сторону 430-го семейства...

Чё там смотpеть. Это ТАМ yже есть давно.

Я ж чё и возбyдился - SOT-23-6, нy и потpебление.

-= Брест. Павел Гришин =-

... Спит крепко, как продавец будильников.

Reply to
Pavel Grishin

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

Среда Июнь 28 2006 07:43, Nicolas Minakov wrote to George Shepelev:

SI>>> В письме от 20.06.2006 я и указывал про С для tiny15 (это тоже SI>>> АВРка, младшее семейство). >> А для остальных tini есть? Они вовсе не взаимозаменяемые... NM> В поставке winavr объектники на всю линейку NM> tiny11/12/13/15/22/2313/24/25/26/26/28/44/45/46/85/86

Что-ж, это хорошо. Есть выбор...

Георгий

Reply to
George Shepelev

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

Среда Июнь 28 2006 12:01, Slav Matveev wrote to George Shepelev:

GS>>>> симпатичный Z80, заметь, "наследственность" ему не помешала... SM>>> наследственность это AX, и в "симпатичном" Z80, по-большому SM>>> счету, относительно i8080 принципиальных изменений нет, SM> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

GS>> Естественно, архитектуру и систему команд сохранили. Зато GS>> "обвязка" SM> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GS>> резко упростилась - одно питание, один тактовый сигнал... SM> сравни две подчеркнутые фразы.

Сравнил, противоречия нет. Один только перевод процессора на пятивольтовое питание и упрощение схемы тактирования - очень принципиальное его улучшение, что характерно, не затрагивающее ни архитектуры, ни системы команд...

SM>>> А теперь помедитируй на каких интеловских процессорах ты SM>>> сможешь запустить диггер, случайно завалявшийся на 5" SM>>> дискетке... GS>> Тут гораздо важнее архитектура всего компьютера, а не система GS>> команд процессора. Ты думаешь игрушки с РК-86 пойдут на GS>> Спектруме? Или на MSX? SM> произвольно взятые - конечно нет.

То-то и оно.

SM> Все зависит от того, что использует софтина из железа и из функций SM> монитора.

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

Георгий

Reply to
George Shepelev

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

Среда Июнь 28 2006 12:22, Slav Matveev wrote to Kirill Frolov:

SM> никто не спорит что добавились команды. но от этого SM> 8-битные регистры не перестали попарно собираться SM> в 16-битные

Правда? А что ты скажешь про 16-ти битные регистры IX и IY? Из каких

8-битных регистров они "попарно собираются"? И что ты скажешь про "пары 8-битных регистров" AF/AF'?

SM> и не появилось возможности складывать два произвольных регистра.

ADD IX,BC/DE/IX/SP ADD IY,BC/DE/IY/SP ADC HL,BC/DE/HL/SP SBC HL,BC/DE/HL/SP

Я уж не говорю про

ADD A,(IX/IY+смещение)

SM> Был ли доступ ко второму набору регистров кроме как SM> через ex, exx?

"Второй набор" предназначен для смены контекста. К "чужому" контексту не пускают, это вполне логично.

SM> 16-тиразрядная арифметика к имевшемуся сложению получила SM> вычитание, а команды ввода-вывода, правда не такие развесистые SM> были и в 8080. Блочные операции, конечно, шаг в перед. SM> но, повторюсь, принципиально ничего не изменилось.

"Подумаешь, аэроплан! Двигатель был и у паровоза, крылья были и у ветряных мельниц. Принципиально ничего не изменилось" ;)

Георгий

Reply to
George Shepelev

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

Среда Июнь 28 2006 19:55, Kirill Frolov wrote to Slav Matveev:

KF> А что такое DOS (Denial of Service?) KF> Дискеты? Это что-то вроде глиняных табличек? KF> 5.25 -- мой CD-ROM их не читает.

А перфоленту туда пихать не пробовал? ;)))

Георгий

Reply to
George Shepelev

snipped-for-privacy@chesspartner.com, ты ещё здесь сидишь?

Четверг Июнь 29 2006 03:57, Alex Kouznetsov wrote to Pavel Grishin:

PG>> СЛОВАРЬ - он и в Си словаpь. (я этy стоpкy подчёpкиваю) AK> То есть, Форт непричем? Если я организую словарь, то смогу делать AK> C/asm программы компактнее, так что ли?

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

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Hо гораздо чаще стратегические находки приходят в результате изменения способа представления данных или таблиц. Именно здесь лежит сердце программы. Покажите мне ваши блок-схемы, но спрячьте таблицы, и я останусь в неведении. Покажите мне ваши таблицы, и мне уже не надо смотреть блок-схемы, они и так очевидны. Легко продолжить примеры могущества представлений. Я вспоминаю молодого человека, занимавшегося созданием сложного пультового интерпретатора для IBM 650. Он смог поместить его в неправдоподобно малый объем памяти, сделав интерпретатор для интерпретатора, поскольку контакты с человеком медленны и редки, а память была дорогой. Элегантный маленький транслятор с фортрана, созданный фирмой Digitek, использует очень сжатое специальное представление для самой программы транслятора, так что внешняя память оказывается ненужной. Время, потерянное на интерпретацию этого представления, окупается в десятикратном размере благодаря исключения ввода/вывода. (Целый ряд таких примеров можно найти в упражнениях к шестой главе книги Брукса и Айверсона "Автоматическая обработка данных", а также в упражнениях, предлагаемых Кнутом.) Лучшее, что может зачастую сделать программист, оказавшийся в затруднительном положении из-за нехватки памяти, - это отвлечься от своей программы, а потом вернуться назад и пересмотреть свои данные. Представление данных - это сущность программирования. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Ф.Брукс "Мифический человеко-месяц"

Георгий

Reply to
George Shepelev

Hi, Dimmy!

SM>> наследственность это AX, и в "симпатичном" Z80, по-большому SM>> счету, относительно i8080 принципиальных изменений нет, добавлены SM>> регистры, добавлены команды. но как были регистры SM>> невзаимозаменяемы, так и остались, как был AX, так и остался.

DT> Мнээ, а что такое AX в 8080/Z80? Помнится, в 8080 были A, PSW, BC, DT> DE, HL. действительно, а в Z80 насколько не изменяет память было AF, BC, DE, HL, IX, IY, SP, PC ... вроде ничего не забыл .. ну и конечно их копии с ` %) Pavel Lunkov

Reply to
Pavel Lunkov

Да. Скорей всего не будет. Как и IBM-PC вообще. А на чём ту BSD запускать тогда? Советская промышленность остановилась на 286-х компутерах. Ещё правда вот Ангстрем что-то 32-разрядное, VAX-совместимое выпускает. Интересно, в каких компутерах и с какими ОС оно используется?

А по-проще? Как в любых современных гуях виджеты упаковываются: либо они умещаются, либо нет. Либо растягиваются, для использования свободного места, либо нет. Ещё скроллбар может быть. Ещё бывают перекрывающиеся окна...

Reply to
Kirill Frolov

Hi Dmitry!

28 Jun 06 16:48, Dmitry Orlov wrote to Slav Matveev:

SM>>>> какой-нибудь виртуальной машиной или сопроцессором?

DO>>> Оно так фактически и есть.

SM>> Какой виртуальной машиной? dosbox'ом?

DO> Hет, это в железе процессора.

а можно ссылку на спецификацию, а то я этот атракцион, видимо, пропустил...

Slav.

Reply to
Slav Matveev

Возьми интерпретатор какой-нибудь. Вот и сократится.

Reply to
Kirill Frolov

Есть подозрение, что можно сделать бесконечную команду. Путём бесконечной последовательности префиксов. Или я ошибаюсь? (нельзя ли подобным образом DOS устроить?)

Reply to
Kirill Frolov
*** Answering a msg posted in area BADECHO (BADECHO).

Hi Dmitry!

28 Jun 06 16:48, Dmitry Orlov wrote to Slav Matveev:

SM>> А 8 гигабит по этой меди он потянет если ему тактовой SM>> частоты добавить?

DO> Hет, если заплатить больше. Или подождать когда станут больше давать DO> за те же деньги, что я и намереваюсь сделать.

т.е. ты утверждаешь что пределов совершенству по твоей меди нет?

SM>> Я вижу. на двух гигагерцах idle time 97%. я, правда, перед SM>> собой задачу "выкачать весь интернет" еще никогда не ставил.

DO> А я периодически вижу вообще не реагирующий на внешние раздражители DO> компьютер. Загрузка 100%. Hа PIII-500 и около того.

я это вижу и видел на всех компах, которые у меня были. до 4-хпроцессорного ксеона включительно. Будем как ядреные сибирския лесорубы продолжнать придумывать задачи, ставящие раком самый современный процессор?

SM>> nat, squid и прочие мелочи жизни. свои 5 мбит честно лопатит. SM>> Через него полсотни клиентов ходят.

DO> А теперь запусти на нем e-mule, мул у меня в другом месте запушен, на 2ггц под виндой. правда я его все-таки ограничиваю, сейчас у него 140 коннектов, 60кб/с на скачку и загрузка процессора не поднимается выше 10%.

DO> дай ему 500 коннекшонов открыть и посмотри что будет. bash-2.04$ netstat -n | egrep "tcp|udp" | wc 269 1614 21789 да... до 500 не дотягивает. но это входящие и исходящие на сквид. Сколько потоков клиентских в обход он гонит я не знаю.

DO> Да под виндой, а не под линухом, там иногда и DO> виндовые программы надо пускать. конечно. автокад, корелдро и фотошоп. А в последнем пару-тройку 150-меговых файлов по 50 слоев каждый. Тогда и наступит полное счастье. правда раком система встанет независимо от частоты процессора. что 2ггц, что 4ггц. Со вторым это произойдет чуть быстрее. И еще не забыть про 3dmax, заставив его обcчитывать многополигонную сцену с рейтрессингом и поставить рендерингу приоритет above normal.

SM>> не имеет, и под лозунгом "ускоряет интернет" не SM>> подразумевается интернет-шаринг.

DO> Подразумевается, что показ страничек и скачивание файлов становится DO> быстрей. Это так и есть.

Это бред сивой кобылы, потому что ускорение в десятые доли процента совершенно не адекватно повышению частоты и цены.

ты можешь поставить себе 4-хплатный кластер из двухпроцессорных двухядерных систем, но все равно не получишь 8мбайт/с на 10мбитном канале. при пинге в 200 мс выигрыш в рендеринге страницы ты просто не заметишь.

Slav.

Reply to
Slav Matveev

Hi Dmitry!

28 Jun 06 16:48, Dmitry Orlov wrote to Slav Matveev:

SM>> Ускоряет железо у провайдера, а не железо у пользователя.

DO> Ускоряет и то и другое. Да и не появится у провайдера железо, если его DO> нет у пользователя.

пользователь может обвешаться dsl'ями, но если у провайдера стоит тормозной маршрутизатор и тонкий канал до аплинка, никакой скорости не будет. неужели это не понятно? Прежде чем поставить dsl каждому клиенту, провайдер долежн поставить dsl на каждую АТС.

SM>> рисовать красивые картинки с приемлимым fps'ом, пока ему SM>> рядом не поставят радеон или нвиду.

DO> Ты процессор только один знаешь - центральный Пентиум?

Я знаю рекламный лозунг "новый процессор пентиум 4 с технологией приколись братва как мы умеем ускоряет интернет". про другие процессоры в нем ни слова.

DO>>> А я разве с этим спорю? SM>> ты очень неудачно сказал про 2.5М по тем же проводам.

DO> Очень удачно. По тем же самым проводам. Я же не другу Васе по DO> коммутируемой линии модемом звоню, а к ISP по телефонным проводам DO> подключаюсь. Очень неудачно ибо это не ты подключаешься к узлу провайдера, а провайдер вынес узел доступа к твоей двери.

SM>> Были другие технологии передачи данных на физике типа SM>> "медная пара", и оконечное оборудование, как не странно, тоже SM>> называлось модемами.

DO> Где были эти технологии? А сейчас ADSL - в каждом доме.

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

DO> А если туда PI-200 поставить, то все колом встанет. А если в DO> веб-камеру поставить 8051 на 12МГц, то даже слайд-шоу не получится. несомненно в вебкамеру можно поставить ксеон. но нужно ли? DO> А если сегодня продают 3GHz а три года назад продавали 1GHz, а 6 лет DO> назад - 0.5, то это вовсе не основание каждый год выбрасывать старое DO> и ставить новое и кричать что ничего быстрей не стало. Вот если это DO> раз в 5-6 лет делать, то увидишь как стало. А если это делать раз в 20 лет, то сказка становится былью, а фантастика реальностью. но ты абсолютно прав. очередный гигагерц частоты это не основание выбрасовать старое и ставить новое из-за какого-то мифического ускорения интернета.

SM>>>> второй всего лишь 95%. И пока дело не дошло до SM>>>> числомолотилок

DO>>> Зачем молотилки, игрушку не самую современную запустил - и DO>>> опаньки, процессора не хватает, остального тоже.

SM>> геймер. Получить ты 500 fps вместо 100 fps. Ты разницу SM>> заметишь?

DO> Я - не геймер. Hо ребенок не может играть в свои игрушки ни на одном DO> из тех 5-6летних компах, которых мне вполне хватает для игр в мои. Я с тобой полностью согласен. но лишние гигагерцы в нынешние игры ничего не добавят. 20 fps и 100 fps - разница заметная. 100 и 500 - далеко не всем. Смысл очердного ускорения?

DO> А если я вдруг увлекусь видеомонтажом, то скорости никакой из DO> имеющихся сегодня на рынке за разумные деньги не покажется много. А мне лично все равно сколько будет жаться ролик: 4 часа или 8 часов, потому что жаться он все равно будет в пакетном режиме в мое отсутствие. Без специфического железа, боюсь, реалмайма все равно не получить. А перегнать VHSную кассету в цифру с практически одинаковым качеством удастся что на бытовом видеоплеере и любой картой в VIVO, так и на профессиональной аппаратуре. Разница в качестве врядли будет адекватна разнице в цене железа.

SM>> Есть физический и технологический предел, который никакой SM>> процессор не сможет ускорить.

DO> Про пределы я давно слышу, да только реальные недорогие решения все DO> время их каким-то образом прорывают.

Пределы обходятся применением других технологий.

Ты, кстати, заметил что процессоры начинают расти вширь а не ввысь, а параллельне интерфейсы заменяются на последовательные?

Slav.

Reply to
Slav Matveev

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

Hello, Dimmy Timchenko! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Wed, 28 Jun

2006 12:44:42 +0400:

DO>> Когда NAT'ом работает выделенная железяка (с тоже не самым хилым DO>> процессором внутри) все как-то веселей.

DT> Хм, у меня такая железяка, на ней ARM7, 16М флеша, 4М ОЗУ, что-то DT> вроде 125MHz тактовой, ucLinux - не такая уж страшная моща. Однако, DT> работает.

Во времна PI-200 такая железяка совсем не казалась не такой уж и мощной и не стоила вместе с роутером $30.

dima

formatting link

Reply to
Dmitry Orlov

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.