|
|
  |
Настоящие инструкции AVR и..., не очень. |
|
|
|
Dec 9 2008, 18:30
|

кекс
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Dec 9 2008, 19:11
|
дятел
    
Группа: Свой
Сообщений: 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,..... но по маркетинговым соображениям Атмел решил что команд дб много...
|
|
|
|
|
Dec 9 2008, 20:24
|
дятел
    
Группа: Свой
Сообщений: 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) итд... И я очень бы удивился если бы это было не так...
|
|
|
|
|
Dec 9 2008, 20:30
|

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

|
Цитата(Rst7 @ Dec 10 2008, 00:57)  Да ну? Вообще-то CBI и SBI работают только в диапазоне 0...31 и не достают до регистра статуса. Так что это отдельные команды для манипуляции конкретно регистром SREG. Ах, да, действительно! Фигню полную сморозил. Стыдно, блин... Спасибо за поравку.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 9 2008, 20:42
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 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 и там, и там?
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
Dec 9 2008, 20:52
|
Гуру
     
Группа: Участник
Сообщений: 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" вызовет еще большее удивление...
|
|
|
|
|
Dec 9 2008, 21:17
|
дятел
    
Группа: Свой
Сообщений: 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" вызовет еще большее удивление...  Чукча не читатель - чукча писатель, хотите поспорить насчет владения AVR Instruction Set ? предлагайте задачу... тока не очень объемную please...
|
|
|
|
|
Dec 9 2008, 21:25
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(singlskv @ Dec 9 2008, 23:11)  но по маркетинговым соображениям Атмел решил что команд дб много... Команд и должно быть много. Это удобнее. Я не чуть бы не обиделся на Intel, в своё время, если бы вместо знаменитого "XRA A" применял бы всем понятное "CLR A". И вообще не понимаю причины данного спора. Если вам не нравится мнемоника, то всегда можно программировать в кодах. Мне без разницы сколько реальных команд. Главное чтобы было понятно и удобно их применять. Кроме того, маркетинг - вещь нужная. Я тоже пытаюсь использовать такие вещи. И мне как-то в голову не лезет, обвинять в этом кого-то ещё.
|
|
|
|
|
Dec 9 2008, 21:26
|
Гуру
     
Группа: Участник
Сообщений: 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 ----- Это не слишком объемная задача ?
|
|
|
|
|
Dec 9 2008, 21:36
|
дятел
    
Группа: Свой
Сообщений: 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 ? если нет, то и темы для обсуждения нет, я имел в виду только их...
|
|
|
|
|
Dec 9 2008, 22:01
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(singlskv @ Dec 10 2008, 00:36)  это для команд brbc brbs ? если нет, то и темы для обсуждения нет, я имел в виду только их... Вот это уже лучше. Потому как первоначально было: --- По поводу условных переходов: если мне не изменяет память (документация далеко), то некоторые команды условного перехода - это не просто команды проверки единичных битов в регистре статуса, а команды проверки их комбинаций. --- Неа, там все однозначно ---
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|