XXXXXXXXXX0000 | ||
abuf[1] | XXXXXXXXXX0001 | |
abuf[2] | XXXXXXXXXX0010 | |
abuf[3] | XXXXXXXXXX0011 | |
abuf[4] | XXXXXXXXXX0100 | |
abuf[5] | XXXXXXXXXX0101 | |
bbuf | bbuf[0] | XXXXXXXXXX0110 |
bbuf[1] | XXXXXXXXXX0111 | |
bbuf[2] | XXXXXXXXXX1000 | |
cbuf | cbuf[0] | XXXXXXXXXX1001 |
cbuf[1] | XXXXXXXXXX1010 | |
cbuf[2] | XXXXXXXXXX1011 | |
cbuf[3] | XXXXXXXXXX1100 | |
XXXXXXXXXX1101 | ||
… |
Следующий пример показывает использование трех директив для объявления трех различных кольцевых буферов:
.VAR/CIRC abuf[6];
.VAR/CIRC bbuf[3];
.VAR/CIRC cbuf[5];
Поскольку буферы объявлены отдельно, все они будут кольцевыми и не будут объединены. Правила размещения для каждого из этих буферов такие же, как в рассмотренном выше примере для одиночного буфера abuf. Размещение этих буферов в памяти процессора показано в табл. 11.3.
Таблица 11.3
Имя буфера | Элемент буфера | Двоичный адрес |
---|---|---|
… | ||
abuf | abuf[0] | XXXXXXXXX00000 |
abuf[1] | XXXXXXXXX00001 | |
abuf[2] | XXXXXXXXX00010 | |
abuf[3] | XXXXXXXXX00011 | |
abuf[4] | XXXXXXXXX00100 |