Сообщение от
Patron
Первым делом, небольшая поправка - в последнем примере выполнялся код 010017, т.е. не MOVB R0, (PC), а MOV R0, (PC).
Ага, исправил. Вот тут правильно:
MOVB R0, (PC)
Код:
001000: 012700 110017 110017 110000 110000 110000 110000 110000
001020: 110000 110000 110000 000000 000000 000000 000000 000000
Код:
SEL 100000 03/16
HR 100000 I 000400 06/14
HR 100002 I 000200 06/20
UR 000400 I 012706 06/08
UR 000402 I 001000 06/12
UR 000404 I 000137 06/08
UR 000406 I 001000 06/20
UR 001000 I 012700 06/08
UR 001002 I 110017 06/12
UR 001004 I 110017 06/08
UR 001006 I 110000 06/08
UR 001006 I 110000 OB 000017 16/18
UR 001006 I 110017 06/08
UR 001010 I 110000 06/08
UR 001010 I 110000 OB 000017 16/18
UR 001010 I 110017 06/08
UR 001012 I 110000 06/08
UR 001012 I 110000 OB 000017 16/18
UR 001012 I 110017 06/08
UR 001014 I 110000 06/08
UR 001014 I 110000 OB 000017 16/18
UR 001014 I 110017 06/08
UR 001016 I 110000 06/08
UR 001016 I 110000 OB 000017 16/18
UR 001016 I 110017 06/08
UR 001020 I 110000 06/08
UR 001020 I 110000 OB 000017 16/18
UR 001020 I 110017 06/08
UR 001022 I 110000 06/08
UR 001022 I 110000 OB 000017 16/18
UR 001022 I 110017 06/08
UR 001024 I 110000 06/08
UR 001024 I 110000 OB 000017 16/18
UR 001024 I 110017 06/08
UR 001026 I 000000 06/08
UR 001026 I 000000 OB 000017 16/18
UR 001026 I 000017 06/08
UR 001030 I 000000 06/08
SEL 100000 03/12
UW 000776 O 000200 10/12
UW 000774 O 001030 10/12
UR 000010 I 010026 06/14
... ушел в Trap 4
Код:
001000: 012700 110017 110017 110017 110017 110017 110017 110017
001020: 110017 110017 110017 000017 000000 000000 000000 000000
---------- Post added at 18:38 ---------- Previous post was at 18:15 ----------
Сообщение от
Patron
Т.к. предвыборка следующего слова происходит одновременно с раскодированием текущего - команды BR и JMP (R0) должны сначала читать следующее слово и лишь затем выполнять переход - интересно в этом убедиться.
Ну да, так и есть
BR
Код:
SEL 100000 03/16
HR 100000 I 000400 06/14
HR 100002 I 000200 06/20
UR 000400 I 012706 06/08
UR 000402 I 001000 06/12
UR 000404 I 000137 06/08
UR 000406 I 001000 06/20
UR 001000 I 000240 06/08
UR 001002 I 000240 06/12
UR 001004 I 000775 06/12
UR 001006 I 123456 06/08
UR 001000 I 000240 06/08
UR 001002 I 000240 06/12
UR 001004 I 000775 06/12
UR 001006 I 123456 06/08
UR 001000 I 000240 06/08
UR 001002 I 000240 06/12
UR 001004 I 000775 06/12
UR 001006 I 123456 06/08
UR 001000 I 000240 06/08
JMP (R0)
Код:
HR 100000 I 000400 06/14
HR 100002 I 000200 06/20
UR 000400 I 012706 06/08
UR 000402 I 001000 06/12
UR 000404 I 000137 06/08
UR 000406 I 001000 06/20
UR 001000 I 012700 06/08
UR 001002 I 001004 06/12
UR 001004 I 000240 06/08
UR 001006 I 000240 06/12
UR 001010 I 000110 06/12
UR 001012 I 123456 06/18
UR 001004 I 000240 06/08
UR 001006 I 000240 06/12
UR 001010 I 000110 06/12
UR 001012 I 123456 06/18
UR 001004 I 000240 06/08
UR 001006 I 000240 06/12
UR 001010 I 000110 06/12
UR 001012 I 123456 06/18
---------- Post added at 19:11 ---------- Previous post was at 18:38 ----------
Сообщение от
Patron
Интересно, как работают команды MOV (SP)+,(SP)+ и MOVB (SP)+,(SP)+, когда они пишут не в область кода, а в обычный стек. Наверняка, это можно понять и из предыдущих примеров, но я слегка запутался.
Из предыдущих примеров видно, для MOV (SP)+,(SP)+ запись в "область кода" происходит только здесь, и идет перечитывание команды по адресу 1006.
Код:
UR 001006 I 012626 06/08
UR 001004 I 012626 06/12
UW 001006 O 012626 12/14
UR 001010 I 012626 06/22
UR 001006 I 012626 06/08
Потом операции по адресам из SP обгоняют выборку команд и происходит просто конвейерное переписывание из ячейки в следующую. То же самое и для MOVB (SP)+, (SP)+
---------- Post added at 20:29 ---------- Previous post was at 19:11 ----------
Результаты задержки RPLY шагами по 2 такта (0 и 1 не различаются, как и остальные следующие нечетные)
MOV R0, R0
0
Код:
SEL 100000 03/16
HR 100000 I 000400 06/14
HR 100002 I 000200 06/20
UR 000400 I 012706 06/08
UR 000402 I 001000 06/12
UR 000404 I 000137 06/08
UR 000406 I 001000 06/20
UR 001000 I 010000 06/08
UR 001002 I 010000 06/08
UR 001004 I 010000 06/08
UR 001006 I 000000 06/08
UR 001010 I 000000 06/08
SEL 100000 03/16
HR 100170 I 100400 06/06
2
Код:
SEL 100000 03/16
HR 100000 I 000400 08/16
HR 100002 I 000200 08/22
UR 000400 I 012706 08/10
UR 000402 I 001000 08/14
UR 000404 I 000137 08/10
UR 000406 I 001000 08/22
UR 001000 I 010000 08/10
UR 001002 I 010000 08/10
UR 001004 I 010000 08/10
UR 001006 I 000000 08/10
UR 001010 I 000000 08/10
SEL 100000 03/16
HR 100170 I 100400 08/08
4
Код:
SEL 100000 03/16
HR 100000 I 000400 10/18
HR 100002 I 000200 10/24
UR 000400 I 012706 10/12
UR 000402 I 001000 10/16
UR 000404 I 000137 10/12
UR 000406 I 001000 10/24
UR 001000 I 010000 10/12
UR 001002 I 010000 10/12
UR 001004 I 010000 10/12
UR 001006 I 000000 10/12
UR 001010 I 000000 10/12
SEL 100000 03/16
HR 100170 I 100400 10/10
6
Код:
SEL 100000 03/16
HR 100000 I 000400 12/20
HR 100002 I 000200 12/26
UR 000400 I 012706 12/14
UR 000402 I 001000 12/18
UR 000404 I 000137 12/14
UR 000406 I 001000 12/26
UR 001000 I 010000 12/14
UR 001002 I 010000 12/14
UR 001004 I 010000 12/14
UR 001006 I 000000 12/14
UR 001010 I 000000 12/14
SEL 100000 03/16
HR 100170 I 100400 12/12
NOP
0
Код:
SEL 100000 03/16
HR 100000 I 000400 06/14
HR 100002 I 000200 06/20
UR 000400 I 012706 06/08
UR 000402 I 001000 06/12
UR 000404 I 000137 06/08
UR 000406 I 001000 06/20
UR 001000 I 000240 06/08
UR 001002 I 000240 06/12
UR 001004 I 000240 06/12
UR 001006 I 000000 06/12
UR 001010 I 000000 06/08
SEL 100000 03/16
HR 100170 I 100400 06/06
2
Код:
SEL 100000 03/16
HR 100000 I 000400 08/16
HR 100002 I 000200 08/22
UR 000400 I 012706 08/10
UR 000402 I 001000 08/14
UR 000404 I 000137 08/10
UR 000406 I 001000 08/22
UR 001000 I 000240 08/10
UR 001002 I 000240 08/12
UR 001004 I 000240 08/12
UR 001006 I 000000 08/12
UR 001010 I 000000 08/10
SEL 100000 03/16
HR 100170 I 100400 08/08
4
Код:
SEL 100000 03/16
HR 100000 I 000400 10/18
HR 100002 I 000200 10/24
UR 000400 I 012706 10/12
UR 000402 I 001000 10/16
UR 000404 I 000137 10/12
UR 000406 I 001000 10/24
UR 001000 I 000240 10/12
UR 001002 I 000240 10/12
UR 001004 I 000240 10/12
UR 001006 I 000000 10/12
UR 001010 I 000000 10/12
SEL 100000 03/16
HR 100170 I 100400 10/10
6
Код:
SEL 100000 03/16
HR 100000 I 000400 12/20
HR 100002 I 000200 12/26
UR 000400 I 012706 12/14
UR 000402 I 001000 12/18
UR 000404 I 000137 12/14
UR 000406 I 001000 12/26
UR 001000 I 000240 12/14
UR 001002 I 000240 12/14
UR 001004 I 000240 12/14
UR 001006 I 000000 12/14
UR 001010 I 000000 12/14
SEL 100000 03/16
HR 100170 I 100400 12/12