[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Да правильно Вы все считаете, но с маленьким добавлением - битовая маска равна (2^k)-1 и 2^k>=l. Для сравнения с l используются младшие (2^k)-1 бит i регистра. Старшие 14-((2^k)-1) бит i регистра до модификации по m и будут базовым адресом (естественно с обнуленными младшими 2^k-1 битами).
Поэтому начало циклич. блока и д.б. на круглой границе, кратной 2^k.
Кстати в SHARC это безобразие устранено. Там явно есть адресуемые
B-регистры (регистры базового адреса) и цикл. адресация выглядит сл. образом: i=b+(i+m-b)mod(l), подобных ограничений на начало буфера не имеется.
В 21xx по сути также, но базовый адрес неявно и с ограничениями.
E-mail: info@telesys.ru