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

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


Гуру
******

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



Знаю, часть мнемоник инструкций АВР сделаны из комерческих или иных соображений, и приводят к одному и тому же микрокоду. Нельзя узнать : сколько и какие?
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 9 2008, 18:30
Сообщение #2


кекс
******

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



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

Из соображений удобства пользования.
lsl r
всяко удобнее и понятнее чем
add r,r

Скачайте документ AVR Instruction Set Reference , и поиском по ключевому тегу "(see" найдите все такие инструкции. Я насчитал всего 5.

CLR
CBR
LSL
ROL
TST
Go to the top of the page
 
+Quote Post
zhevak
сообщение Dec 9 2008, 19:08
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



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

Если вы пишите на асме, то намного удобнее использовать команду запрета прерываний CLI, чем корячиться вспоминая адрес (= 0x3F) и бит (= 7) для команды
CBI <вспомни_адрес>, <вспомни_бит>.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 19:11
Сообщение #4


дятел
*****

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



Цитата(defunct @ Dec 9 2008, 21:30) *
Я насчитал всего 5.
CLR
CBR
LSL
ROL
TST
ИМХО, их намного больше чем 5, например:
brhc 1111 01kk kkkk k101
brhs 1111 00kk kkkk k101
brid 1111 01kk kkkk k111
brie 1111 00kk kkkk k111
идт...

те... 1111 xxkk kkkk kyyy
где:
xx=01 - if cleared
xx=00 - if set

yyy - номер бита в SREG

kkkkkkk - смещение

то есть, для всех этих команд, можно было бы писать что-нить типа
brc(s) yyy, kkkkkkk
yyy= C, I, H,.....

но по маркетинговым соображениям Атмел решил что команд дб много...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 9 2008, 19:17
Сообщение #5


Шаман
******

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



Цитата(muravei @ Dec 9 2008, 20:08) *
Знаю, .... сколько и какие?

Не просвятите ли, чем может помочь в работе подобное знание?
Единственное, что приходит в голову, это при разборе листинга знать, что существуют подобные синонимы и адекватно к этому относиться.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Dec 9 2008, 19:57
Сообщение #6


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

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



Цитата(zhevak @ Dec 9 2008, 21:08) *
+ две неудобочитаемых команды работы с флагами

Да ну? Вообще-то CBI и SBI работают только в диапазоне 0...31 и не достают до регистра статуса. Так что это отдельные команды для манипуляции конкретно регистром SREG.

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


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


дятел
*****

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



Цитата(Rst7 @ Dec 9 2008, 22:57) *
По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.
Неа, там все однозначно
Код
breq 1111 00kk kkkk k001 Z=001(1)
brge 1111 01kk kkkk k100 V=100(4)
brhc 1111 01kk kkkk k101 H=101(5)
brid  1111 01kk kkkk k111 I=111(7)
brlo  1111 00kk kkkk k000 C=000(0)
brmi  1111 00 kk kkkk k010 N=010(2)
brtc  1111 01 kk kkkk k110 T=110(6)
brvs  1111 00 kk kkkk k011 V=011(3)
итд...
И я очень бы удивился если бы это было не так...
Go to the top of the page
 
+Quote Post
zhevak
сообщение Dec 9 2008, 20:30
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(Rst7 @ Dec 10 2008, 00:57) *
Да ну? Вообще-то CBI и SBI работают только в диапазоне 0...31 и не достают до регистра статуса. Так что это отдельные команды для манипуляции конкретно регистром SREG.

Ах, да, действительно! Фигню полную сморозил. Стыдно, блин...
Спасибо за поравку.


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
Rst7
сообщение Dec 9 2008, 20:42
Сообщение #9


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

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



Цитата(singlskv @ Dec 9 2008, 22:24) *
Неа, там все однозначно
...
Код
brge 1111 01kk kkkk k100 V=100(4)
...
brvs  1111 00 kk kkkk k011 V=011(3)

А почему тут два разных номера (3 и 4), хотя флаг называется V и там, и там?


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


Гуру
******

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



Цитата(singlskv @ Dec 9 2008, 23:24) *
Неа, там все однозначно


В самом деле ?
Цитата
Код
brge 1111 01kk kkkk k100 V=100(4)
И я очень бы удивился если бы это было не так...

Тогда, наверное, _внимательное_ прочтение "AVR Instruction Set" вызовет еще большее удивление... wink.gif
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 21:17
Сообщение #11


дятел
*****

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



Цитата(Rst7 @ Dec 9 2008, 23:42) *
А почему тут два разных номера (3 и 4), хотя флаг называется V и там, и там?
потому что чисто на автомате ошибся при выборе нужных инструкций...
смотрим инструкции brbc и brbs:
Код
If SREG(s) = 0 then PC <- PC + k + 1, else PC <- PC + 1
Syntax:                 Operands:                     Program Counter:
BRBC s, k               0 ≤ s ≤ 7, -64 ≤ k ≤ +63      PC <- PC + k + 1
PC <- PC + 1, if condition is false
16-bit Opcode:
1111 01kk kkkk ksss

Код
If SREG(s) = 1 then PC ← PC + k + 1, else PC ← PC + 1
Syntax:                  Operands:                          Program Counter:
BRBS s,k                 0 ≤ s ≤ 7, -64 ≤ k ≤ +63           PC <- PC + k + 1
                                                            PC <- PC + 1, if condition is false
16-bit Opcode:
1111 00kk kkkk ksss



Цитата(rx3apf @ Dec 9 2008, 23:52) *
Тогда, наверное, _внимательное_ прочтение "AVR Instruction Set" вызовет еще большее удивление... wink.gif
Чукча не читатель - чукча писатель, хотите поспорить насчет владения
AVR Instruction Set ? предлагайте задачу... тока не очень объемную please...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 9 2008, 21:25
Сообщение #12


Гуру
******

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



Цитата(singlskv @ Dec 9 2008, 23:11) *
но по маркетинговым соображениям Атмел решил что команд дб много...


Команд и должно быть много. Это удобнее.

Я не чуть бы не обиделся на Intel, в своё время, если бы вместо знаменитого "XRA A" применял бы всем понятное "CLR A".

И вообще не понимаю причины данного спора. Если вам не нравится мнемоника, то всегда можно программировать в кодах. Мне без разницы сколько реальных команд. Главное чтобы было понятно и удобно их применять.

Кроме того, маркетинг - вещь нужная. Я тоже пытаюсь использовать такие вещи. И мне как-то в голову не лезет, обвинять в этом кого-то ещё.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 9 2008, 21:26
Сообщение #13


Гуру
******

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



Цитата(singlskv @ Dec 10 2008, 00:17) *
чукча писатель,

Самокритично...
Цитата
хотите поспорить насчет владения
AVR Instruction Set ? предлагайте задачу... тока не очень объемную please...

Нет, предлагаю лишь _внимательно_ прочитать :
-----
If Rd ≥ Rr (N ⊕ V = 0) then PC ← PC + k + 1, else PC ← PC + 1
-----
Это не слишком объемная задача ?
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 9 2008, 21:36
Сообщение #14


дятел
*****

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



Цитата(rx3apf @ Dec 10 2008, 00:26) *
Самокритично...

Нет, предлагаю лишь _внимательно_ прочитать :
-----
If Rd ≥ Rr (N ⊕ V = 0) then PC ← PC + k + 1, else PC ← PC + 1
-----
Это не слишком объемная задача ?

это для команд brbc brbs ?
если нет, то и темы для обсуждения нет,
я имел в виду только их...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Dec 9 2008, 22:01
Сообщение #15


Гуру
******

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



Цитата(singlskv @ Dec 10 2008, 00:36) *
это для команд brbc brbs ?
если нет, то и темы для обсуждения нет,
я имел в виду только их...

Вот это уже лучше. Потому как первоначально было:

---
По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций.
---
Неа, там все однозначно
---
Go to the top of the page
 
+Quote Post

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

 


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


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