[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Немного неточно. Базовый адрес формируется процессором из значения
L-регистра и текущего значения I -регистра. А именно базовый адрес = ближайшему адресу, который <= I и кратен ближайшей степени двойки, большей или равной L.
Пример.
.var/dm/ram/abs=19 buff[3];{не об'явлен циклическим}
m0=1;
i0=^buff; {i0=19}
l0=3;
ax0=dm(i0,m0);{i0=17}
ax0=dm(i0,m0);{i0=18}
ax0=dm(i0,m0);{i0=16}
ax0=dm(i0,m0);{i0=17}
ax0=dm(i0,m0);{i0=18}
ax0=dm(i0,m0);{i0=16}
далее по кругу 16-18, т.е. баз. адрес=16.
Линкеру в такой ситуации деваться некуда и он обязан размещать цикл. буфер по круглому адресу.
E-mail: info@telesys.ru