ну забыл rlc a поставить
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Elektronik
02 декабря 2002 г. 18:22
В ответ на:
Ответ: Не спеши. Опять же вопрос: что больше -1 или 1? Как это будет для 51го?
отправлено Bill 02 декабря 2002 г. 18:15
mov a,perem
inc a
jz m1
rlc a
jc m2
;больше
m2:
;меньше
m1:
;равно
Составить ответ
|||
Конференция
|||
Архив
Ответы
Ответ: Вся проблема заключается в том, что для сравнения чисел со знаком у 51го даже 2-х команд недостаточно, ибо у него просто нет соответствующих признаков (флажков). И для корректного анализа результата сравнения потребуется больше 2-х команд.
—
Bill
(02.12.2002 18:37, 300 байт)
Насчет флажков - в 51ом есть и бит переноса, и бит арифметического переполнения и признак нуля. А какого флага интересно Вам не хватает для сравнения со знаком ???
—
SM
(02.12.2002 19:11,
пустое
)
Приведите сравнение за 2 команды для AVR? ;)
—
Elektronik
(02.12.2002 18:47,
пустое
)
Ответ: Попробую, например так
—
Bill
(02.12.2002 18:56, 26 байт)
Хоть и притянуто за уши, но СР, СРС, TST, ASR, ADIW и SBIW - вот те 6 инструкций, которых очень недостает в х51
—
просто так
(02.12.2002 19:50,
пустое
)
Ну и где сравнения и переходы, да и переменные в регистрах никто не держит ? ;) В общем не убедили вы меня в превосходстве вашего процессора. До свидания :)
—
Elektronik
(02.12.2002 19:00,
пустое
)
После второй команды (СРС=сравнение с учетом переноса) все флаги выставлены соответственно 16-битным операндам, тут АВР явно победил.
—
просто так
(02.12.2002 19:55,
пустое
)
А с какого пьяну переменная -1 уже в регистрах находится? Да и сама переменная обычно в памяти данных лежит. Пример за уши притянут.
—
Elektronik
(03.12.2002 10:57,
пустое
)
Ну ты же сам его попросил "привести сравнение за две команды", не оговорив условий.
—
просто так
(03.12.2002 11:19,
пустое
)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru