hobot(20.12.2020)
Не обижайся, просто я это давно уже пережевал, по второму разу жевать - не очень интересно этим заниматься. Так что - с моей стороны это подвиг - цени
Давно бы уже самлопатуModelsim освоил, там на гитхабе у меня простая инструкция, на пять строчек, как проект запустить.
Update: M4 выложил, поужинаю и сделаю диаграммы.
Последний раз редактировалось Vslav; 19.12.2020 в 17:38.
Ну... Проекты приходят и уходят, а навык владения лопатой - остается.
Тестовый код:
ДиаграммыКод:47 040000 memlim = 40000 ; лимит тестовой памяти 353 ;_____________________________________________________________________________ 354 ; 355 ; Дополнительные тесты исполнения, вызывающие ошибку шины на предвыборке 356 ; 357 001404 012705 037774 tst6: mov #memlim-4, R5 ; 358 001410 013725 001546 mov @#cmd15, (R5)+ ; 359 ; 360 001414 012737 001432 000004 mov #1$, @#trap4 ; 361 001422 013715 001532 mov @#cmd10, (R5) ; 362 001426 000165 177776 jmp -2(R5) ; 363 ; 364 001432 012737 001450 000004 1$: mov #2$, @#trap4 ; 365 001440 013715 001534 mov @#cmd11, (R5) ; 366 001444 000165 177776 jmp -2(R5) ; 367 ; 368 001450 012737 001472 000004 2$: mov #3$, @#trap4 ; 369 001456 013715 001540 mov @#cmd12, (R5) ; 370 001462 012701 040004 mov #memlim+4, R1 ; 371 001466 000165 177776 jmp -2(R5) ; 372 ; 373 001472 012700 001512 3$: mov #4$, R0 ; 374 001476 010037 000004 mov R0, @#trap4 ; 375 001502 013715 001542 mov @#cmd13, (R5) ; 376 001506 000165 177776 jmp -2(R5) ; 377 ; 378 001512 012737 001530 000004 4$: mov #5$, @#trap4 ; 379 001520 013715 001544 mov @#cmd14, (R5) ; 380 001524 000165 177776 jmp -2(R5) ; 381 ; 382 001530 000000 5$: halt ; 383 ; 384 001532 010100 cmd10: mov R1, R0 ; 385 001534 012700 001234 cmd11: mov #1234, R0 ; 386 001540 011100 cmd12: mov @R1, R0 ; 387 001542 010007 cmd13: mov R0, PC ; 388 001544 000776 cmd14: br .-2 ; 389 001546 000240 cmd15: nop ; 390 ;
Решил попробовать адресацию -(PC) (код 47). Интересный результат получился.
Бесконечный цикл не получился. Выполнилось по два раза INC R0 и INC R1, останов случился на адресе 01030, а не 01026.
- - - Добавлено - - -
Довольно интересные результаты дают команды снятия/установки признаков, некоторые команды могут и не исполнится.
Вроде бы у PDP-11 специально и употребляется восьмеричная система счисления, чтобы всё было ясно без слов. Ну так уж и быть:
1.2.Код:1000 CLR R0 1002 CLR R1 1004 CLR R2 1006 CLR R3 1010 MOV R5,R5 1012 MOV -(PC),R5 1014 INC R0 1016 INC R1 1020 INC R2 1022 INC R3 1024 HALTКод:1000 CLR R0 1002 CLR R1 1004 CLR R2 1006 CLR R3 1010 MOV R5,R5 1012 MOV -(PC),R5 1014 NOP 1016 INC R0 1020 NOP 1022 INC R2 1024 INC R3 1026 HALT
Titus(20.12.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)