Я пытаюсь работать с файлом CPU.cmp, чтобы записать инструкции и посмотреть, имеет ли смысл то, что написано в CPU.cmp.
В строке 17 (время 8)
|time| inM | instruction |reset| outM |writeM |addre| pc |DRegiste|
|6+ | 0|0000001111101001| 0 |*******| 0 | 1000| 6| 11111 |a @1001
|7 | 0|0000001111101001| 0 |*******| 0 | 1001| 7| 11111 |a
|7+ | 0|1110001110011000| 0 | 11110| 1 | 1001| 7| 11110 |c MD = D-1; null
|8 | 0|1110001110011000| 0 | 11109| 1 | 1001| 8| 11110 |c
Как видите, значение регистра D уменьшается на 1 с (десятичных) 11111 до 11110, и значение outM отражает это. Однако затем outM снова уменьшается до 11109. Почему это происходит? Инструкция MD = D-1, поэтому она должна уменьшить D reg один раз и сохранить значение в двух местах. Как получается, что RAM[A] и D имеют разные значения?
Я ожидал, что они будут такими же...