...
1000 MVI R8 0A 1006
...
пяти адресная система команд
пяти адресная система команд, как я понял это система команд вида:
Код:
то есть:
Код:
адрес текущей команды / код команды / операнды / адрес следующей команды
Но вот ни какой вменяемой документации не нашел. Подскажите пожалуйста где можно чего нить толковое почитать, ну или на худой конец как ответить на поставленный вопрос. Заранее благодарен.
Вроде очередной вариант машины "Тьюринга". Если хорошо постараться то за один вечер можно придумать несколько вариантов таких процессоров, так-что документации именно к этому, может и не быть. Недостатки, думаю и так видны, первое и последнее поля, хотя многое завит от-того как часто эти поля используются в качестве операндов.
Цитата: vasil211
Вроде очередной вариант машины "Тьюринга". Если хорошо постараться то за один вечер можно придумать несколько вариантов таких процессоров, так-что документации именно к этому, может и не быть. Недостатки, думаю и так видны, первое и последнее поля, хотя многое завит от-того как часто эти поля используются в качестве операндов.
что именно нет так с первым и последними полями??? лично мне ни чего не приходит в голову кроме большого размера такой команды, лишних 2х(2 байта на адрес). у кого нить еще идеи? лично я сдаюсь! =(((
Адрес старшего байта числа - 67FF. Адрес младшего байта числа - 67FE.
Код:
1000 MVI R8 0A 1006
1006 MVI R7 67 100C
100C MVI R6 FE 1012
1012 MVI R1 00 1018
1018 MVI R2 00 101E
1024 MVI R3 00 102A
102A MOV R7R6 R4 1033
1033 ADD R3 R4 R3 103C
103C JC R2 1041
1041 JC R1 1046
1046 INR R6 104B
104B JC R7 1050
1050 MOV R7R6 R4 1059
1059 ADD R2 R4 R2 1062
1062 JC R1 1067
1067 INR R6 106C
106C JC R7 1071
1071 DCR R8 1076
1076 JNZ 102A 107C
107C HLT ----
1006 MVI R7 67 100C
100C MVI R6 FE 1012
1012 MVI R1 00 1018
1018 MVI R2 00 101E
1024 MVI R3 00 102A
102A MOV R7R6 R4 1033
1033 ADD R3 R4 R3 103C
103C JC R2 1041
1041 JC R1 1046
1046 INR R6 104B
104B JC R7 1050
1050 MOV R7R6 R4 1059
1059 ADD R2 R4 R2 1062
1062 JC R1 1067
1067 INR R6 106C
106C JC R7 1071
1071 DCR R8 1076
1076 JNZ 102A 107C
107C HLT ----
Складывает и результат в 3 регисттрах R1,R2,R3. Здесь всё так как надо, вернее даже так как захотелось разработчикам этого процессора. Вопрос может состоять только в том для каких целей создавался этот процессор? т.е. здесь первые и последние поля служат для какой-то цели, быть может для облегчения отладки или это взято от балды, чтоб бедных студентов озадачить.
Еще по этому куску кода не видно, что у процессора есть сегментные регистры. Если их нет то он может работать только с 64 кб оперативки. Если на основные поля 'код команды / операнды' будет в среднем приходится по 4 байта, то каждая инструкция будет занимать по 8 байт. В 64 кб можно будет разместить только 65536/8=8192 инструкций, и даже меньше в случае размещения в памяти данных.
Цитата: vasil211
Еще по этому куску кода не видно, что у процессора есть сегментные регистры. Если их нет то он может работать только с 64 кб оперативки. Если на основные поля 'код команды / операнды' будет в среднем приходится по 4 байта, то каждая инструкция будет занимать по 8 байт. В 64 кб можно будет разместить только 65536/8=8192 инструкций, и даже меньше в случае размещения в памяти данных.
да, действительно, сегментные регистры отсутствуют, ну или по крайней мере преподаватель мне об этом не сообщил. в процессоре вообще как бы присутствуют только регистры R1-R8 и флаги Z(ноль) и C(переполнение). и еще пролистав систему команд для этого чуда обнаружил, что отсутствуют команды перемещения в память(записи в память), есть возможность только читать из памяти в регистр.