Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2008, 11:48   #21
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

Спасибо! Я добавил к концу каждого цикла задержку. Вывел в железо получается не высвечивается "0". А так все работает! Персчет идет правильный. Но начало идет с "8". Видимо попадает не в адрес?
hobin вне форума Ответить с цитированием
Старый 29.08.2008, 11:58   #22
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

STOP! Все нормально! И начало с "0". Сам набарагозил! Все правильно работает
hobin вне форума Ответить с цитированием
Старый 29.08.2008, 14:57   #23
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

Ещё вопос. А ассемблере можно за один машииный такт выполнить две команды? Например:

cbi PORTB,0
out PORTD,tmp
hobin вне форума Ответить с цитированием
Старый 30.08.2008, 12:31   #24
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

RISC - контроллеры выполняют одну машинную команду (мнемонически ассоциированную с командой ассемблера) за один и более такт, в зависимости от типа команды. В вашем примере:
cbi PORTB,0 2 такта
out PORTD,tmp 1 такт
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 30.08.2008, 17:58   #25
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

Понятно. А почему этого не видно при эмуляции в AVRstudio?
И тогда сколько тактов в таком варианте?
ldi r16, (0<<XMM1)|(0<<XMM0)
hobin вне форума Ответить с цитированием
Старый 30.08.2008, 18:34   #26
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Почему не видно? Очень даже видно - View->Workspace - В окошечке "Workspace" - пунктик Processor->Cycle Counter.

А команда типа ldi r16, (0<<XMM1)|(0<<XMM0) компилятором будет преобразована в команду ldi r16, 0x00 - т.е. загрузить в РОН (r16) константу, а такая команда выполняется один такт.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 31.08.2008, 08:14   #27
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

Каждый день узнаешь чегонибудь нового. Спасибо вам форумчане!
hobin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа ben95 Общие вопросы Delphi 1 04.01.2008 20:52
Программа на С++ natan Помощь студентам 1 23.12.2007 15:59