ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
1008575 Топик полностью
fk0, легенда (01.06.2020 14:04, просмотров: 339) ответил RxTx на Доступ к каждому [n] каждый раз по базе индексировать будет. А если несколько полей, несколько указателей нужно, не уместятся в регистры и каждый указатель апдейтить нужно.. Мммм?
Регистр нужен ОДИН. Потому, как и в массиве структур, и в структуре массивов с константной длиной массива расстояние между членами одной структуры -- константа времени компиляции. Только в одном случае она влазит в байт, во втором в два-четыре. Если компилятор не понимает -- можно аксессоры на C++ написать, где constexpr вылезет в явном виде. Можно руками закодить в C. И да, на спектруме тоже нужен один регистр. Разные поля адресуются через LD A,H : ADD A,#nn : LD H,A. Если 

последовательно -- то через вообще INC H. Кто хоть раз столкнулся со спектрумовским экраном просветлел на всю жизнь -- данные не обязательно хранить в памяти последовательно. Хотя, в Орионе-128 экран IMHO был лучше (INC H смещение на байт по горизонтали, INC L -- смещение вниз по-вертикали, и так по всему экрану, а не третями).

[ZX]