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

 
 
4 страниц V  < 1 2 3 4 >  
Closed TopicStart new topic
> Настоящие инструкции AVR и..., не очень.
singlskv
сообщение Dec 9 2008, 22:11
Сообщение #16


дятел
*****

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



Цитата(rx3apf @ Dec 10 2008, 01:01) *
Вот это уже лучше. Потому как первоначально было:

---
По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.
---
Неа, там все однозначно
---

Ну дык Вы и не путайте мои посты с чужими,
я уже признался что выбирая примеры чуть ошибся...

суть моих высказываний от этого не изменилась...
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 9 2008, 23:30
Сообщение #17


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(singlskv @ Dec 10 2008, 00:11) *
суть моих высказываний от этого не изменилась...

У Intel'a JZ == JE, и что? ;>
Команды переходов это IMHO особый случай, не думаю, что их стоит приплетать. Это просто правило хорошего тона иметь большой набор мнемоник для удобства пользования.

Когда удобнее сделать переход по результату мат. опреации - берем команды мат. переходов brsh, brlo ...
Когда удобнее флаговый синоним - пользуем флаговый синоним brcc, brcs ....
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 9 2008, 23:33
Сообщение #18


Гуру
******

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



А мне это нравится.

Возьмём к примеру BRCS и BRLO. Понятно, что это одно и тоже.
Но мне удобнее не парить себе голову и при сдвиге и обработке бита использовать BRCS (легко вспомнить C SET), а при сравнениях BRLO(легко вспомнить LOW).

ЗЫ: Обогнали. smile.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 9 2008, 23:40
Сообщение #19


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(SasaVitebsk @ Dec 10 2008, 01:33) *
А мне это нравится.

Хотя как Игорь верно отметил выше, если вдуг пишем свой дизасм - эти синонимы доставят сложностей - не всегда ясно, что уместней поставить.
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 9 2008, 23:49
Сообщение #20


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

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(muravei @ Dec 10 2008, 00:08) *
и приводят к одному и тому же микрокоду.

Почему к одному и тому же микрокоду-то?
Результату!!!

Сообщение отредактировал domowoj - Dec 9 2008, 23:51


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
ae_
сообщение Dec 10 2008, 06:34
Сообщение #21


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(defunct @ Dec 10 2008, 02:30) *
... поиском по ключевому тегу "(see" найдите все такие инструкции. Я насчитал всего 5.
CLR
CBR
LSL
ROL
TST

вот ещё пара:
SER R16 = LDI R16, 0xFF
SBR R16, 0xNN = ORI R16, 0xNN

Цитата
+ две неудобочитаемых команды работы с флагами
SBI A, b ; установить бит b в адресном пространстве ввода/вывода
CBI A, b ; сбросить бит b в адресном пространстве ввода/вывода
дублируются парами команд
SEC CLS
SEN CLN
SEZ CLZ
SEI CLI
SES CLS
SEV CLV
SET CLT
SEH CLH

Возможно имелось ввиду, что для этих инструкций есть синоним BSET s, а не SBI/CBI.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Dec 10 2008, 07:29
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(muravei @ Dec 9 2008, 21:08) *
Знаю, часть мнемоник инструкций АВР сделаны из комерческих или иных соображений, и приводят к одному и тому же микрокоду. Нельзя узнать : сколько и какие?

Если только Вам не лень. Напишите "программу", включающую все команды. Их возьмите из даташита на контроллер. Посмотрите в окно дизассемблера. И поймёте.

А чем CBR коммерчески более выгоден, чем ANDI?

Относительно проверки 2-х бит. Написано "If Rd < Rr (N [+] V = 1) then PC <- PC + k + 1, else PC <- PC + 1" Но ещё написано • Bit S: Sign Bit, S = N ⊕ V. Так что переход всё-таки по одному биту, который, правда, (из коммерческих соображений?) есть xor двух других бит того же регистра.

Помните, тут раньше встречался такой дотошный человек (забанили его), который исследовал код операции AVR на предмет оптимального распределения битов по полям(!), чтобы, значить, если сбойнёт бит в коде, так не было бы фатальных последствий.
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 10 2008, 08:30
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(IgorKossak @ Dec 9 2008, 22:17) *
Не просвятите ли, чем может помочь в работе подобное знание?

Ни чем! smile.gif
Простое здоровое не здоровое любопытство. (нужное зачеркнуть) smile.gif
Надеюсь , льзя?
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
Сразу ощущаешь гордость. Но понятно, что есть где-то ПЗУ микрокоманд и оно при большем числе , должно занимать большее место.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 10 2008, 10:25
Сообщение #24


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(muravei @ Dec 10 2008, 10:30) *
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
У MSP430 27 "настоящих" и 24 эмулируемых.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 10 2008, 10:45
Сообщение #25


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(muravei @ Dec 10 2008, 11:30) *
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
Сразу ощущаешь гордость. Но понятно, что есть где-то ПЗУ микрокоманд и оно при большем числе , должно занимать большее место.

А смысл?
А гордость-то за что?
Ладно бы команды какие особенные были - как например у Z80 были автоматические блоковые и цикловые команды - вот это я понимаю.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 10 2008, 11:43
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(MrYuran @ Dec 10 2008, 13:45) *
автоматические блоковые и цикловые команды - вот это я понимаю.

А я нет !
Это "вредные" команды, они по 250 тактов делались, или типа того.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 10 2008, 11:53
Сообщение #27


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(muravei @ Dec 10 2008, 14:43) *
А я нет !
Это "вредные" команды, они по 250 тактов делались, или типа того.

Мой склероз подсказывает, что 13 тактов на итерацию. Правда, это были фактически программные циклы, которые можно было прервать (прерыванием) в любой момент, и затем спокойно продолжить. На каждом цикле заново выбирался код операции и все такое...

Точно, склероз - 21 такт (загрузки или сравнение) на итерацию !

Сообщение отредактировал rx3apf - Dec 10 2008, 12:13
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 10 2008, 16:28
Сообщение #28


Гуру
******

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



Цитата(muravei @ Dec 10 2008, 12:30) *
Ни чем! smile.gif
Простое здоровое не здоровое любопытство. (нужное зачеркнуть) smile.gif
Надеюсь , льзя?
Просто подумал, у ближайших конкурентов Атмела где-то около 30 команд, а у него в 4 раза больше!
Сразу ощущаешь гордость. Но понятно, что есть где-то ПЗУ микрокоманд и оно при большем числе , должно занимать большее место.


Даже если откинуть бредовые ser и т.п., и зачеркнуть дублированные - всё равно команд больше. И как не ехиднечай все они используются компилятором. movw, adiw, sbiw, ldd и т.д и т.п., что, в целом, делает прогу эффективнее.

Что-то насчёт ПЗУ микрокоманд, вы похоже загнули. Это не пентиум. smile.gif
1 такт на команду. То есть обычный дешифратор команд, скорее всего.
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 10 2008, 18:06
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(SasaVitebsk @ Dec 10 2008, 19:28) *
Что-то насчёт ПЗУ микрокоманд, вы похоже загнули.

Я бы к словам не предирался, да и Вы , судя по всему "унутрь" не заглядывали.
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 10 2008, 18:19
Сообщение #30


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

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(rx3apf @ Dec 10 2008, 14:53) *
Мой склероз подсказывает, что 13 тактов на итерацию. Правда, это были фактически программные циклы, которые можно было прервать (прерыванием) в любой момент, и затем спокойно продолжить. На каждом цикле заново выбирался код операции и все такое...

Точно, склероз - 21 такт (загрузки или сравнение) на итерацию !

а REP MOVSB в Intel-ах не забыли? smile.gif за одну команду ассемблера скопировать 64К памяти smile.gif можно и больше smile.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post

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

 


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


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