Pull to refresh

Comments 7

Почему вместо вот этого
        case 0x00: UnimplementedInstruction(state); break;    
        case 0x01: UnimplementedInstruction(state); break;    
        case 0x02: UnimplementedInstruction(state); break;  


Не сделать массив с адресами функций-реализаций, а если значение == 0, то завершать программу с ошибкой.
Я бы так же спросил, почему вместо констант не были использованы мнемоники, объявленные через enum или define.
Да тут вообще странно, особенно case, учитывая, что многие мнемоники, например MOV, POP и т.д. проще определять по битовым маскам.
собственно, проще все команды определять по битовым маскам. и таким образом просто и логично реализовать всю систему команд.
Переводчику вопросы задавать бессмысленно.
P (parity) is set when the answer has even parity, clear when odd parity

P (parity, чётность) задаётся, когда результат чётный, и обнуляется, когда он нечётный

В оригинале — правильно, в переводе — нет. P == 1 тогда и только тогда, когда в результате чётное число установленных в единицу битов.
Я бы взял ПЛИС и запилил 8080 на Verilog. На opencores есть готовые проекты.
Sign up to leave a comment.

Articles