реклама на сайте
подробности

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Прибавить константу к регистру!
Rst7
сообщение Mar 10 2008, 18:46
Сообщение #46


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Никакого сравнения с ассемблером ибм370


Вы, видимо, не сталкивались с системой комманд IBM360/370 - там все в порядке, не путайте с I80x86.

Цитата
Попробуйте написать swab @20(r1) - обмен байтами по адресу, лежащему по адресу r1+20, на аврке или другом каком мк и почувствуйте разницу.


А надо ли такое в реальной жизни? Ведь вся идея RISC построенна на уходе от комманд, которые надо выполнять при помощи каких-то микропрограмм.

Цитата
но команда CBR делает побитное И регистра с инвертированной константой, а команда ANDI делает побитное И регистра с НЕинвертированной константой.


Комманда CBR требует в битовом представлении именно инвертированной маски - это ANDI в чистом виде, просто назван по другому.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Дон Амброзио
сообщение Mar 10 2008, 19:18
Сообщение #47


Местный
***

Группа: Участник*
Сообщений: 323
Регистрация: 11-02-08
Пользователь №: 34 947



Цитата(=GM= @ Mar 10 2008, 17:01) *
Не на что там смотреть.

Т.е. хотите сказать что не почерпнуЛИ для себя ничего нового касаемо реализаций RTOS?

P.S. Если будеТЕ отвечать, то я бы попросил Вас тоже без панибратства и уж тем более хамства (хотя даже если и почерпнуЛИ, но никогда не признаеТЕ этого..Да?)

А то что касаемо команды CBR , то это действительно как бы встроенный макрос, но это не суть важно, важно то, что если с помощью препроцессора и аппарата макросов можно сделать из ограниченного набора команд почти любую команду, то тогда зачем скулить (это я не Вам, а другим) о том, что эта команда не реализована в железе? Разве когда пишите программы это важно, что препроцессор или компилятор преобразует вашу команду в другую эквивалентную ей?

Сообщение отредактировал Дон Амброзио - Mar 10 2008, 19:20


--------------------
После устранения бага в программе она стала работать....хуже
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 10 2008, 20:41
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



2 =GM=

Вот я и говорю, что при использовании компилятора, вся красота теряется от глаз пользователя. Он её не видит! Не видит комманд и не видит режимов адресации. А с наступлением различных кэшей и т.п. вообще не контролирует прохождение проги. smile.gif

Я вон когда на PC пишу, - уже и не помню когда последний раз в окно дизасемблера заглядывал. smile.gif
Другой уровень абстракции. Начинаешь мыслить если не объектами, то уж переменными и процедурами точно.

Вот и выходит на первый план удобство работы и наличие развитого ПО. Этим и взяли. А теперь победить уже практически невозможно.
Go to the top of the page
 
+Quote Post
KRS
сообщение Mar 10 2008, 20:43
Сообщение #49


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Дон Амброзио @ Mar 10 2008, 22:18) *
А то что касаемо команды CBR , то это действительно как бы встроенный макрос, но это не суть важно, важно то, что если с помощью препроцессора и аппарата макросов можно сделать из ограниченного набора команд почти любую команду, то тогда зачем скулить (это я не Вам, а другим) о том, что эта команда не реализована в железе? Разве когда пишите программы это важно, что препроцессор или компилятор преобразует вашу команду в другую эквивалентную ей?

Это не всегда эквивалентные команды! Например при написании и использовании макросов addi и adci надо знать что флаги эти команды будут устанавливать не так как при обычном сложении. "Встроеные макросы" тоже имеют особенности например условные переходы (типа беззнакового больше С и Z сброшены такого перехода нет и инструкция реально противоположая та же что и беззноакове меньше С установелен) при которых надо менять операнды в предыдущей команде cmp или sub, IMHO вообще лучше не использовать.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 10 2008, 23:29
Сообщение #50


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Rst7 @ Mar 10 2008, 18:46) *
Вы, видимо, не сталкивались с системой команд IBM360/370 - там все в порядке, не путайте с I80x86

Ну почему, сталкивался. Для IBM-370, вернее IСL (английский вариант IBMки, стоял в министерстве морфлота) писал немного, в частности, подпрограммы вывода на планшетный графопостроитель и стыковал их с фортрановскими. Один оператор BALR *,14 чего стоит. Переход на ассемблер pdp-11 был как глоток свежего воздуха, поверьте.
Цитата(Rst7 @ Mar 10 2008, 18:46) *
А надо ли такое в реальной жизни? Ведь вся идея RISC построена на уходе от команд, которые надо выполнять при помощи каких-то микропрограмм

Не пойму, почему вы говорите о микропрограммах. Так делалось раньше, сейчас можно сделать по-иному, ну и что? Суть состоит не в том, как это было реализовано, а в том, что режимы адресации, применённые в pdp-11, упрощают программирование, делают его прозрачным. Вот, например, команда JMP @20(R1) может быть легко применена в операторе switch, что на си, что на ассемблере. И так во всём. Жаль, что всё ушло безвозвратно. Не хотите работать с командой swab @20(r1), попробуйте реализовать команду JMP @20(R1) на аврке.
Цитата(Rst7 @ Mar 10 2008, 18:46) *
Команда CBR требует в битовом представлении именно инвертированной маски - это ANDI в чистом виде, просто назван по другому

Никто не спорит, что код команды один и тот же. Но константа в одном случае инвертирована, а в другом - нет. Сравните сами.
Код
   cbr   r16,0b00010011
   andi  r16,0b00010011

В первом варианте сбросятся биты 0, 1 и 4, а во втором эти биты останутся. Сделано для удобочитаемости кода и только.

Цитата(Дон Амброзио @ Mar 10 2008, 19:18) *
Т.е. хотите сказать что не почерпнули для себя ничего нового касаемо реализаций RTOS?
P.S. Если будеТЕ отвечать, то я бы попросил Вас тоже без панибратства и уж тем более хамства (хотя даже если и почерпнуЛИ, но никогда не признаеТЕ этого..Да?)

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

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

И, пожалуйста, не пишите P.S., если нет подписи, это моветон. P.S. буквально означает "после подписи", использовалось ещё в Древнем Риме, когда письмо было написано и подписано, и вдруг понадобилось что-то добавить.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 11 2008, 06:36
Сообщение #51


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Вот, например, команда JMP @20(R1) может быть легко применена в операторе switch, что на си, что на ассемблере.


Да не спорит никто. Просто идеология RISC подразумевает, что 20 процентов комманд выполняется 80 процентов времени. Посему остальные 20% лучше не реализовывать в аппаратуре, а заменить несколькими коммандами
Код
lds zl,label
lds zh,label+1
add zl,r16
adc zh,r17
ijmp

результирующий выигрыш - больше, как в быстродействии, так и в потреблении, площади кристалла и т.д. И писать для RISC поэтому лучше на ЯВУ, дабы компилятор сам выполнил за вас работу по изготовлению аналогов CISC-комманд.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 11 2008, 13:26
Сообщение #52


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Rst7 @ Mar 11 2008, 06:36) *
Просто идеология RISC подразумевает, что 20 процентов команд выполняется 80 процентов времени. Посему остальные 20% лучше не реализовывать в аппаратуре, а заменить несколькими командами

Не хочу спорить, но при чём здесь риск или циск? Всегда так было и наверное так будет, что для большинства обозримых задач какое-то количество команд занимает львиную долю процессорного времени.

Не знаю точного определения риск или сиск и вообще трудно, а может и невозможно, найти чистый риск-МК, но по-моему задача перед проектировщиком риск-машины должна стоять такая: определить минимальное количество элементарных команд, выполняющихся за единый квант времени, чтобы любые операции можно бы было выполнить, используя комбинации из этого минимального набора. Ну а если у проектировщика остались неиспользованные площади кристалла, то грех не добавить дополнительных команд или функций, памяти, периферии, ещё какой-нибудь фичи... Что мы и наблюдаем в реальном мире.

По аналогии с логическими схемами - любую сколь угодно сложную комбинаторную схему можно построить на комбинации схем 2И-НЕ, а можно на комбинации 2ИЛИ-НЕ. А проектировщики вроде бы реально используют базис 4И-НЕ...
Цитата(Rst7 @ Mar 11 2008, 06:36) *
Код
lds zl,label
lds zh,label+1
add zl,r16
adc zh,r17
ijmp

Немного вы недопоняли, и не так сделали. Здесь вы реализовали команду JMP label(R1), которая прыгает на адрес (label+R1), а надо было реализовать команду JMP @label(R1), которая прыгает по адресу, который лежит по адресу (label+R1). Рассматривайте команду JMP просто как специфическую команду MOV, которая заносит операнд в программный счетчик РС. Хотя можно было бы использовать и MOV @label(R1),РС. Вот это гибкость!

Отвлекусь. Даже простой вопрос о расположении операндов в pdp-11 решён идеально. Портится второй операнд. Почему в аврках и интелах портится первый операнд? Откуда спрашивается арабское письмо возникло?

Или вот, опять о пространстве ввода-вывода. Атмелу этого пространства уже не хватает, поневоле приходится использовать in/out в комбинации с lds/sts. Как ни крути, а для программиста это лишняя головная боль и возможный источник ошибок. Будь пространство ввода-вывода сразу отмаплено на память как в pdp-11, было бы гораздо проще.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 11 2008, 14:19
Сообщение #53


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Немного вы недопоняли, и не так сделали. Здесь вы реализовали команду JMP label(R1), которая прыгает на адрес (label+R1), а надо было реализовать команду JMP @label(R1), которая прыгает по адресу, который лежит по адресу (label+R1).


Да, пардон. Хотя на суть ответа это не влияет.

Цитата
Отвлекусь. Даже простой вопрос о расположении операндов в pdp-11 решён идеально. Портится второй операнд. Почему в аврках и интелах портится первый операнд? Откуда спрашивается арабское письмо возникло?


Вам написание y=f(x) не жмет? Не возникает желание всю математическую нотацию переделать?

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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 11 2008, 15:24
Сообщение #54


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(=GM= @ Mar 11 2008, 01:29) *
И, пожалуйста, не пишите P.S., если нет подписи, это моветон. P.S. буквально означает "после подписи", использовалось ещё в Древнем Риме, когда письмо было написано и подписано, и вдруг понадобилось что-то добавить.

bb-offtopic.gif забавно: всегда считалось, что post scriptum означает «после написанного». Об этом и академические словари говорят.
Так что p.s. в конце топика без подписи очень даже уместнен. Постскриптум
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 11 2008, 17:22
Сообщение #55


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Rst7 @ Mar 11 2008, 14:19) *
Да, пардон. Хотя на суть ответа это не влияет

Не знаю, какую суть имели в виду вы, но моя суть ответа такая. То, что можно написать на pdp-11 одной командой, уложится в десяток команд аврки. Вот где настоящая красота и компактность кода.
Цитата(Rst7 @ Mar 11 2008, 14:19) *
Вам написание y=f(x) не жмет? Не возникает желание всю математическую нотацию переделать?

Вот ё-маё, ставите с ног на голову! Я читаю правильно слева-направо "игрек равняется эф от икс", а вот в вашем случае надо бы писать f(x)=y. Ещё можно попробовать некоторые слова в предложении писать справа-налево, для разнообразия. Попробуйте "ьтасипан" некоторые слова вот так, понятнее стало? Да, можно привыкнуть, не вопрос, но это ж неправильно. Или всё читаем слева-направо, или всё слева-направо. Зачем микс делать? Если это нужно компилеру, хотя вряд ли, пусть он переворачивает сам аргументы у себя внутри, а человеку надо создать удобство восприятия, как он привык. Слева, так слева. Справа, так справа. Не пойму, что тут упираться, вопрос простой до неприличия.

Не ответили на мысль о пространстве ввода-вывода. Атмелу этого пространства уже не хватает, поневоле приходится использовать in/out в комбинации с lds/sts. Как ни крути, а для программиста это лишняя головная боль и возможный источник ошибок. Будь пространство ввода-вывода сразу отмаплено на память как в pdp-11, было бы гораздо проще.

И вот вы видите, вроде бы всё одно и тоже, и привыкнуть можно, но там чуток не так, там чуток не эдак, и вместо красоты получается безобразный монстр. В одном случае сказочно красивый ассемблер для pdp-11, в другом случае кривой атмеловский ассемблер. И заметьте, это один из самых лучших на сегодняшний день, не будем вспоминать 8051 или пик...


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 11 2008, 17:30
Сообщение #56


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Я читаю правильно слева-направо "игрек равняется эф от икс", а вот в вашем случае надо бы писать f(x)=y.


Это читаем мы так. А обозначает это то, что множеству значений x ставится в соответствие множество значений y. Заметьте, из значения x следует значение y, а не наоборот.

Цитата
То, что можно написать на pdp-11 одной командой, уложится в десяток команд аврки.


Сколько лишней аппаратуры потребуется для реализации этой красивой комманды?

Цитата
Не пойму, что тут упираться, вопрос простой до безобразия.


Упираетесь Вы. Я утверждаю, что разницы нет вообще, есть привычка, не более!


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 11 2008, 17:46
Сообщение #57


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Baser @ Mar 11 2008, 15:24) *
bb-offtopic.gif забавно: всегда считалось, что post scriptum означает «после написанного». Об этом и академические словари говорят.
Так что p.s. в конце топика без подписи очень даже уместнен. Постскриптум

Ну а голова у нас на что дадена? Не только же есть в неё? Такое впечатление, что никто обычных писем не пишет и не подписывается. Раньше, до середины 20 века не было компьютеров, а ещё раньше и бумага была дорогая. Ну написали вы письмо, подписались, ещё что-то в голову вступило, ну перепишите на новом листе, ан нет. Ставили П.С., и писали, что хотели добавить. Опять расписывались. Это разумно и практично.

Отвлекусь. Есть такая поговорка: "исключение подтверждает правило", это калька с латинского. Много лет думал, как же исключение может подтвердить правило. Лет 8 назад узнал, что это был неправильный перевод с латинского. Правильно так: "исключением поверяется правило". Т.е. правило работает там и тогда, где и когда не возникает исключения из этого правила.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 11 2008, 18:18
Сообщение #58


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(=GM= @ Mar 11 2008, 20:22) *
Не ответили на мысль о пространстве ввода-вывода. Атмелу этого пространства уже не хватает, поневоле приходится использовать in/out в комбинации с lds/sts. Как ни крути, а для программиста это лишняя головная боль и возможный источник ошибок. Будь пространство ввода-вывода сразу отмаплено на память как в pdp-11, было бы гораздо проще.
Неправильно расставленны акценты, ИМХО, lds/sts это есть стандартный доступ к памяти и
регистрам в частности, и этот доступ двухтактовый, НО, производитель позаботился о том чтобы
некоторая часть регистров была доступна с однотактовыми in/out, но при этом конечно за нас
решил в каком чипе и к каким регистрам можно доступаться однотактово...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 11 2008, 21:35
Сообщение #59


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(singlskv @ Mar 11 2008, 18:18) *
Неправильно расставлены акценты, ИМХО, lds/sts это есть стандартный доступ к памяти

Ну, положим, вы их сами смещаете(:-). Стандартный, это как? А ld/st тогда какой? Нестандартный?

Цитата(singlskv @ Mar 11 2008, 18:18) *
... НО, производитель позаботился о том чтобы некоторая часть регистров была доступна с однотактовыми in/out, но при этом конечно за нас
решил в каком чипе и к каким регистрам можно доступаться однотактово...

Ну и в результате получили некоторую кривизну. Вот и приходится часть регистров инициировать с помощью in/out, а часть с помощью lds/sts, хоть они и двухсловные, а что делать?

Ладно, это всё ностальгический флейм, немного пар выпустили... Я на неделю в отпуск собрался, хочу посетить столицу Священной Римской империи, не удивляйтесь, если не буду отвечать.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Mar 12 2008, 08:06
Сообщение #60


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Складывается впечатление, господа, что =GM= и Rst7 взялись создавать платформы и спорят чья лучше cool.gif (никого не хочу обидеть).
А разница то какая? Или кто-то в состояние повлиять на уже существующие вещи?
Имеем то, что имеем и заморачиваться над субьективным качеством, сетовать на неудобства и восхвалять (весьма навязчиво) удобства - это на мой взгляд отвлекаться от реальной работы.
Вы предполагали какое-нибудь резюме этой теме?
Или кто-то обопрётся на эту тему при выборе платформы для разработки?
Скорее всего это пустой флейм, пусть даже и с весьма умной подоплёкой.
Go to the top of the page
 
+Quote Post

5 страниц V  « < 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01519 секунд с 7
ELECTRONIX ©2004-2016