Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
ARM7TDMI-S. Команда сравнения. Я сейчас с ума сойду (+)
Отправлено
Igor_Koval
08 октября 2008 г. 16:34
Подаем команду сравнения:
Cmp r0,r1
Результаты:
1. r0 = r1. тогда N <- 0, C <- 1, Z <- 1
2. r0 < r1. тогда N <- 1, C <- 0, Z <- 1
3. r0 > r1. тогда N <- 0, C <- 1, Z <- 1
Т.е., все встало с ног на голову. флаг переноса ведет себя неправильно. он должен вставать в "1" только тогда, когда R0 < R1.
прокомментируйте, плиз, в чем я не прав ?
Составить ответ
|
Вернуться на конференцию
Ответы
Вообще-то не такая уж и редкость, когда вычитание выполняется так: A-B+carry-1.
-
-=ВН=-
(08.10.2008 18:15:10
193.125.71.140
,
пустое
)
Например в том, что в ARM флаг заема действительно устроен неожиданно - он в 1 когда заема нет.
-
Oldring
(08.10.2008 17:14:15
85.141.198.121
,
пустое
)
В общем, всем спасибо. Это я плохой. Буду разбираться ...
-
Igor_Koval
(08.10.2008 17:34:28
92.112.38.146
,
пустое
)
CMP <Rn>,<Rm>
-
ы
(08.10.2008 17:09:50
80.92.98.211
, 84 байт)
Ссылочкой на источник не угостите ?
-
Igor_Koval
(08.10.2008 17:10:45
92.112.38.146
,
пустое
)
DDI0100E_ARM_ARM.pdf
-
ы
(08.10.2008 17:12:4
80.92.98.211
,
пустое
)
И что, во всех случаях z == 1?
-
imho
(08.10.2008 17:07:28
84.47.191.243
, 57 байт)
Сорри. Если r0 = r1, то Z<- 1, иначе Z <- 0
-
Igor_Koval
(08.10.2008 17:09:51
92.112.38.146
,
пустое
)
Неправ в том, что для АРМа пишешь на ассемблере. Напиши то же на Си и посмотри листинг. Многое прояснится.
-
Doppler
(08.10.2008 16:37:29
85.223.109.75
,
пустое
)
Проект написан на Си. на асме делаю оптимизацию. И только. Листинг прочитал до дырок. Из J-link скоро дым повалит. А понять, откуда берется инверсия бита переноса, не могу ...
-
Igor_Koval
(08.10.2008 16:41:43
92.112.38.146
,
пустое
)
внимательно смотри, сравниваешь знаковые или беззнаковые целые. могут быть пренеприятнейшие сюрпризы.
-
Doppler
(08.10.2008 16:50:13
85.223.109.75
,
пустое
)
Простейшая функция на асме:
-
Igor_Koval
(08.10.2008 17:00:21
92.112.38.146
, 300 байт)
Spartan-3 залить по JTAG`у. как?
-
Mahagam
(08.10.2008 17:50:10
192.168.10.120,212.98.183.232
, 270 байт)
это че за компилер?
-
ы
(08.10.2008 17:26:58
80.92.98.211
, 251 байт)
p.s. ADS 1.2
-
ы
(08.10.2008 17:27:54
80.92.98.211
,
пустое
)
Что Вас удивило? Выполнение соглашений по передаче параметров? Хотите быстродействия - не вызывайте функций на каждый чих.
-
Doppler
(08.10.2008 17:20:53
85.223.109.75
,
пустое
)
Не морочь себе голову. И пожалей j-link :-) Ассемблерный листинг иногда просматривай как страховку от косяков компайлера. А оптимизируй на уровне сишного исходника. Это не ПИК и не АВР. На спичках не сэкономишь.
-
Doppler
(08.10.2008 16:46:35
85.223.109.75
,
пустое
)
Вы очень серьезно ошибаетесь. И сэкономил я уже не так мало. Процентов 40 выходит выигрыш. И все за счет асма ...
-
Igor_Koval
(08.10.2008 16:49:47
92.112.38.146
,
пустое
)
Ну что сказать. Плохой компилятор отпадает... Остаются руки. Так просто 40% разницы не бывает. Значит, очень плохо написал на Си.
-
Doppler
(08.10.2008 16:53:16
85.223.109.75
,
пустое
)
Интересно, а цифровые фильтры тоже на Си писать прикажете ?
-
Igor_Koval
(08.10.2008 16:58:54
92.112.38.146
,
пустое
)
Именно. На адекватном DSP. Это если сложный\быстрый. А простой и не быстрый - в целых и на Си. Или Вы свою дипломную работу собираетесь на печатной машинке печатать или , (блин, было же такое) - вручную чертежным шрифтом?
-
Doppler
(08.10.2008 17:03:3
85.223.109.75
,
пустое
)
Не будем спорить. Практический опыт позволяет мне остаться при своих убеждениях ...
-
Igor_Koval
(08.10.2008 17:08:26
92.112.38.146
,
пустое
)
И всё таки потом, "на свежую голову", посмотрите на Ваш С-шный код. Что-то Вы не так делаете, раз 40% разницы.
-
Сидоргек
(08.10.2008 17:47:10
89.209.87.196
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 56:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru