
Сообщение от
Vslav
Все эти операции происходят прозрачно и независимо от остальной аппаратуры, вроде явно не требуют дополнительных тактов.
Значит, с этим мне повезло, т.к. тайминги доступа к чётным/нечётным байтам отдельно никогда не тестировались.
...
А что насчёт таймингов префиксного декремента и постфиксного инкремента регистров при косвенной адресации - тесты показали, что-то вроде того, что инкремент содержимого идёт параллельно с его использованием и на тайминги чаще не влияет, а декремент всегда производится сначала и поэтому автодекремент добавляет операции такты.
Но на самом деле измеренные тайминги ( при задержке RPLY в 6 тактов ) были не так однозначны:
Код:
MOV (R1), R0 30
MOV (R1)+,R0 30
MOV -(R1), R0 30
MOV (R1), (R0) 45
MOV (R1)+,(R0) 46
MOV -(R1), (R0) 47
MOV (R1), (R0)+ 49
ADD (R1), (R0) 55
ADD (R1)+,(R0) 55
ADD -(R1), (R0) 56
ADD (R1)+,(R0)+ 55
ADD -(R1), (R0)+ 56
ADD -(R1),-(R0) 56
ADD @(R1)+,@(R0)+ 82
ADD @-(R1),@(R0)+ 82
ADD @-(R1),@-(R0) 83
BIT @(R1)+,@(R0)+ 70
BIT @-(R1),@(R0)+ 71
BIT @-(R1),@-(R0) 72
Общая идея вполне понятна, но простой логической связи не просматривается - в команде MOV даже инкремент иногда добавляет такт, а декремент нет.
Выделенное синим - вообще за гранью понимания.
---------- Post added at 16:41 ---------- Previous post was at 16:36 ----------
Ещё прикол:
Код:
MOV (R1), R0 30
MOV (R1)+,R0 30
MOV -(R1), R0 30
ADD (R1), R0 30
ADD (R1)+,R0 30
ADD -(R1), R0 30
BIT (R1), R0 30
BIT (R1)+,R0 30
BIT -(R1), R0 31