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

 
 
6 страниц V  « < 3 4 5 6 >  
Reply to this topicStart new topic
> Си для AVR
Dog Pawlowa
сообщение Sep 4 2007, 10:11
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zcost @ Sep 4 2007, 07:07) *
Есть еще аргумент. Недаром архитектура микроконтроллеров как у атмела, так и у микрочипа становится Си ориентированной.

Что, флаг переноса выкинули?! smile.gif
Или что такое Си ориентированная архитектура?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 4 2007, 10:26
Сообщение #62


Гуру
******

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



Цитата(Dog Pawlowa @ Sep 4 2007, 13:11) *
Или что такое Си ориентированная архитектура?
1) Наличие нескольких индексных регистров
2) Развитая косвенная адресация.


--------------------
На любой вопрос даю любой ответ
"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
Kuzmi4
сообщение Sep 4 2007, 10:31
Сообщение #63


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Весело тут у вас.....
По моему после поста singlskv 4.09.2007;00:44 можно тему закрывать...
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 4 2007, 11:00
Сообщение #64


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Сергей Борщ @ Sep 4 2007, 13:26) *
1) Наличие нескольких индексных регистров
2) Развитая косвенная адресация.

А x86 можно считать Си-ориентированной архитектурой?
Два индексных регистра, о развитости косвенной адресации трудно судить, но она ведь есть?


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
kv_addr
сообщение Sep 4 2007, 11:36
Сообщение #65


Местный
***

Группа: Свой
Сообщений: 208
Регистрация: 6-07-04
Из: Полтава
Пользователь №: 279



Цитата(singlskv @ Sep 4 2007, 00:44) *
а код типа такой:
Код
;  13 words / 13 cycles
      ; tmp=  abcdefgh
  mov    tmp2,tmp      ; tmp2= abcdefgh
  andi   tmp2,0b01010101; tmp2= 0b0d0f0h
  andi   tmp, 0b10101010; tmp=  a0c0e0g0
  bst    tmp2,0        ;                 T=h
  lsr    tmp2          ; tmp2= 00b0d0f0
  bld    tmp2,7        ; tmp2= h0b0d0f0
  lsl    tmp        ; tmp=  0c0e0g00  C=a
  adc    tmp, tmp2     ; tmp=  hcbedgfa
  mov    tmp2,tmp      ; tmp2= hcbedgfa
  andi   tmp2,0b01100110; tmp2= 0cb00gf0
  swap   tmp2          ; tmp2= 0gf00cb0
  andi   tmp, 0b10011001; tmp=  h00ed00a
  add    tmp, tmp2     ; tmp=  hgfedcba

Трюк, несомненно, красивый. wink.gif Но такой вариант не так уж сильно ему уступает:
Код
; 14 words / 14 cycles
; tmp=abcdefgh
mov tmp2,tmp
ror tmp
rol tmp2
ror tmp
rol tmp2
ror tmp
rol tmp2
ror tmp
rol tmp2
ror tmp
andi tmp,0xf0
andi tmp2,0x0f
or tmp,tmp2
swap tmp
; tmp=hgfedcba

smile.gif
Go to the top of the page
 
+Quote Post
Stariy Alex
сообщение Sep 4 2007, 12:58
Сообщение #66


Знающий
****

Группа: Свой
Сообщений: 736
Регистрация: 29-04-06
Из: Berlin
Пользователь №: 16 605



Цитата(defunct @ Sep 3 2007, 02:01) *
pdf с bookmark'ами? Залейте, пригодится.
Спасибо

Слил.
http://electronix.ru/forum/index.php?showtopic=36124
Цитата(bbill @ Sep 4 2007, 00:00) *
Залейте, пожалуйста, bbill@mail.ru
Спасибо.

Отправил, 66 мб х 5 файлов (в комплекте AVR-Шпак с дискетой).
На Рапидшару было бы проще.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 4 2007, 13:24
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Dog Pawlowa @ Sep 4 2007, 14:00) *
А x86 можно считать Си-ориентированной архитектурой?
Два индексных регистра, о развитости косвенной адресации трудно судить, но она ведь есть?

Буквы x бывают разные, если это '386', то 'индексные регисты' абсолютно все. Ну пример адресации:
mov dx, fs:[eax + ecx*4 + 1]
Ну даже если просто 86, то индексных тоже не два - si, di, sp, bp, bx.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 4 2007, 13:57
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(zltigo @ Sep 4 2007, 16:24) *
Буквы x бывают разные, если это '386', то 'индексные регисты' абсолютно все. Ну пример адресации:
mov dx, fs:[eax + ecx*4 + 1]
Ну даже если просто 86, то индексных тоже не два - si, di, sp, bp, bx.

Вот недостаток Си - полностью забывается архитектура! smile.gif
Строго говоря, источники расходятся в определении количества индексных регистров, относя bx к регистрам общего назначения и исключая sp ввиду его изменяемости не только программно, но и аппаратно. То есть я забыл всего лишь bp smile.gif
Но я к чему? Не так то много нужно, чтобы быть Си-ориентированной архитектурой? Я думаю, что достаточно хорошего компилятора smile.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 4 2007, 14:51
Сообщение #69


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Dog Pawlowa @ Sep 4 2007, 16:57) *
То есть я забыл всего лишь bp smile.gif

Забыли прежде всего о 386..586 впрочем это обычное дело sad.gif распространять скромные возможности 86/186/286 на все семейство. Ну а для 86 забыли три регистра, это я Вам, как написавший сотни килобайт кода на ASM, а не прочитавший обзорную статейку, говорю.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 4 2007, 15:45
Сообщение #70


Гуру
******

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



Цитата(Dog Pawlowa @ Sep 4 2007, 16:57) *
Но я к чему? Не так то много нужно, чтобы быть Си-ориентированной архитектурой? Я думаю, что достаточно хорошего компилятора smile.gif
Ага. Возьмем PIC16. 8 уровней программно недоступного стека и один FSR. Конечно и для него есть С-компиляторы, но со всякими оговорками. Я, например, не представляю как на такой архитектуре сделать вызов функции по указателю.


--------------------
На любой вопрос даю любой ответ
"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
singlskv
сообщение Sep 4 2007, 22:10
Сообщение #71


дятел
*****

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



Цитата(kv_addr @ Sep 4 2007, 15:36) *
Трюк, несомненно, красивый. wink.gif Но такой вариант не так уж сильно ему уступает:
[code]
.....
На самом деле мой вариант это действительно просто трюк,
просто мне нравятся такие трюки и если есть возможность их применить, то
я их применяю, тока тогда, когда это действительно необходимо...

Примерно такие же трюки вполне реализуемы/используемы на С
Эфектифность конечно чуть меньше(на 10-15%), но при этом сохраняется полная переносимость...
правда на другой платформе код может оказаться неэфективным, но рабочим...

Вобщем, если подитожить, учите инструмент которым Вы пользуетесь...
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 4 2007, 22:53
Сообщение #72


кекс
******

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



Цитата(Dog Pawlowa @ Sep 4 2007, 16:57) *
относя bx к регистрам общего назначения и исключая

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

mov ax, [bx] <- базовая
mov ax, [bx + si] <- базово-индексная.

BP тоже базовый, только в сочетании с SS.
SP - вещь в себе.

остается и правда только два индексных регистра si, di.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 5 2007, 07:18
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(defunct @ Sep 5 2007, 01:53) *
нет команд 8086-го, которые бы могли делать автоинкремент или декремент этого регистра

Автоинкременация не является признаком индексности или не индексности регистра - не выкручивайтесь smile.gif.
Цитата
BP тоже базовый, только в сочетании с SS.

bp спокойно используeтся без "сочетания" с ss:
mov ds:[bp],ax


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 5 2007, 09:34
Сообщение #74


кекс
******

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



Цитата(zltigo @ Sep 5 2007, 10:18) *
Автоинкременация не является признаком индексности или не индексности регистра - не выкручивайтесь smile.gif.

А чего мне выкручиваться-то? Я просто проходил мимо ;>
адресовать через BX в 8086 можно, но это "базовый" регистр, bp - тоже.
Go to the top of the page
 
+Quote Post
mse
сообщение Sep 5 2007, 09:46
Сообщение #75


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(kv_addr @ Sep 4 2007, 15:36) *
Трюк, несомненно, красивый. wink.gif Но такой вариант не так уж сильно ему уступает:
...

;О) Дык, тупой rol-ror*8=16, в принципе, уступает 13-тактовому гулькин. Не тот случай, чтобы огород городить. И на-Цуется более кошерно...Что не может не радовать ;О)
Go to the top of the page
 
+Quote Post

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

 


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


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