[an error occurred while processing this directive]
Помогите с 51-ым ! Как увеличить DPTR на 20. (Делал INC DPTR 20 раз , и даже в цикле делал) - а можно проще?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Отправлено
Димон
09 декабря 2004 г. 11:09
Составить ответ
|||
Конференция
|||
Архив
Ответы
Вот так:
—
Eugene
(09.12.2004 14:27, 102 байт)
А байтов-то, байтов! См. ниже alexei за 5 тактов 10 байт, если, конешно, убрать заморочки с psw
—
cout
(09.12.2004 14:47,
пустое
)
Малацца!
—
x51
(09.12.2004 14:44,
пустое
,
ссылка
)
Прошу прощения, поспешил с ответом ;) Мыслим одинаково ;)
—
Eugene
(09.12.2004 14:52,
пустое
)
Только не поспешил, а опоздал :)
—
x51
(09.12.2004 14:53,
пустое
)
Можно сократить на 2 байта
—
vmp
(09.12.2004 14:42, 121 байт)
Вы правы, но не люблю загромождать прогу лишними метками ;)
—
Eugene
(09.12.2004 14:49,
пустое
)
Опс... Это уже было.
—
vmp
(09.12.2004 14:44,
пустое
)
Да можно менять DPTR занося значения в старшую и младшую части
—
Анатолий
(09.12.2004 11:15, 189 байт)
Не совсем мой случай ...в DPTR может быть 0FFDh и надо, допустим это увеличить на 20 ...
—
Димон
(09.12.2004 11:23,
пустое
)
Наверное тогда самое оптимальное, делать inc DPTR в цикле 20 раз, как ты и делал...
—
Анатолий
(09.12.2004 11:27,
пустое
)
C помощью арифметики примерно так (+)
—
cout
(09.12.2004 11:19, 112 байт)
На всякий случай сохраню, хотя IMHO, с циклом проще .... Просто битва за каждый байт кода идёт ...
—
Димон
(09.12.2004 11:21,
пустое
)
Ну, укоротить-то еще можно, применив сложение А прямо с DPL-DPH без перезагрузки в А
—
cout
(09.12.2004 11:28,
пустое
)
Что-то не верится. Пример иожно?
—
x51
(09.12.2004 13:23,
пустое
)
alexei
—
cout
(09.12.2004 14:29,
пустое
)
Да, но как это - "применив сложение А прямо..."
—
x51
(09.12.2004 14:46,
пустое
)
Имел в виду применение инструкции ADD A, ADR т.е. сложение с прямоадресуемым байтом (+)
—
cout
(09.12.2004 14:55, 113 байт)
Где-то, видимо я упустил эту инструкцию, спасибо ....щас посмотрю!
—
Димон
(09.12.2004 11:41,
пустое
)
Не одной инструкцией, а по очереди с DPL, потом с DPH :)
—
cout
(09.12.2004 11:45,
пустое
)
Короткий вариант
—
x51
(09.12.2004 13:05, 480 байт)
на 2 байта меньше
—
aleksei
(09.12.2004 13:32, 152 байт)
OK
—
x51
(09.12.2004 13:46,
пустое
)
А слово состояния-то зачем сохранять ? Это же не прерывание ... :-))
—
Kuka
(09.12.2004 13:17,
пустое
)
Иногда бывает необходимо, но редко. Optional.
—
x51
(09.12.2004 13:20,
пустое
)
например ?
—
Kuka
(09.12.2004 13:28,
пустое
)
Вот
—
x51
(09.12.2004 13:44, 152 байт)
И еще можно, по-моему, делать "add A, DPL"
—
Анатолий
(09.12.2004 11:16,
пустое
)
Это, понятно - но, при этом переноса в DPH не последует .... обломс ....
—
Димон
(09.12.2004 11:18,
пустое
)
ТОГДА ТАК: А если заменить тупо 2051 на 4051 - страшного ничего не будет? Код полностью совместим?
—
Димон
(09.12.2004 11:20,
пустое
)
Абсолютно совместим.
—
Кодер
(09.12.2004 11:57,
пустое
)
Спасибо !!!
—
Димон
(09.12.2004 13:53,
пустое
)
Отправка ответа
Имя (обязательно):
Пароль:
E-mail:
Тема (обязательно):
Сообщение:
Ссылка на URL:
Название ссылки:
URL изображения:
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
|||
Без кадра
E-mail:
info@telesys.ru