Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Четверг
28 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
Микроконтроллеры
196776
Топик полностью
fk0
, легенда
(07.06.2010 13:03, просмотров: 68)
ответил
ReAl
на
Насколько я помню, в ДОС клавиатурный буфер стандатно был 16 символов. Это была отправная точка, которую от Вас засекретили. 50% (8 позиций) Вам на сложность Ваших задач добавили, потом 6 сняли, так как Вы пишете на ассемблре и это выходит конкретно
Удобно, на самом деле, на 15 символов. или на 7. На 2^N-1. А размер буфера 2^N (чтоб по-маске ANDить индекс в массиве). А N-1 -- чтоб не заводить отдельно битовую переменную "полностью занят" или "полностью пуст".
[ZX]
Ответить
Если завести не rd_index, wr_index, а rd_index, elem_count и писать по (rd_index+elem_count)&len_mask, то и отдельная флаговая переменная не нужна, и зря байт в буфере не пропадает.
ReAl
(470 знак., 07.06.2010 14:12
)
Да, но так лишнее сложение -- жрёт ЦПУ. Байт потерять дешевле. A флаги -- зло. Лучше "могозначная переменная состояния". Как это не имеет? "У кого буфер длинее!"
-
fk0
(07.06.2010 15:53
)
спорное утверждение: иногда сложение быстрее выборки из памяти
-
koyodza
(07.06.2010 16:01
)