Цитата(blackhard @ 30.11.2007 23:30)

если я напишу такую команду прога попросит ввести число в регистр 1 ну а если мне надо ввести уже заданное число
Нет, так процессоры не работают. Они вообще ничего не запрашивают,
никогда. Запрашивают программы. Процессоры только
выполняют действия. Поэтому команда ввода числа в регист уже должна
содержать это число. Если она его не содержит, то тогда скажи - а что вообще эта команда делает?? Конечно, бывают такие команды, которые работают за два такта:
1. in 2
2. 15
- в первом такте сообщается, что дальше будет число, которое нужно положить в регистр 2, а в следующем - само число идет.
Но только мне кажется, что это не есть твой случай. Я думаю, твой операнд идет непосредственно в команде. Примерно так:
хх000001 хх000010 хх001111
, где хх000001 - это номер команды (1), хх000010 - номер регистра (2), хх001111 - операнд (15).
Знаком х обозначены биты, которые не используются. Я не вполне понимаю, почему на номер регистра, которых всего три, нужно было отводить 6 бит.. Хватило бы и двух. Поле номера команды вряд ли тоже требует 6 бит (что означет 64 номера). А поле операнда шестибитное, потому что его длина должна быть равна длине регистра. Конечно, расположить можно было бы все и иначе, например так:
CCCCCCRRRRRRPPPPPPxxxxxx
- здесь С - поле команды, R - поле номера регистра, P - поле значения операнда (я назвал от слова Parameter, потому что первая буква слова Operand похожа на ноль). Так или иначе остаются лишние 6 бит. Но с первым вариантом (xxCCCCCCxxRRRRRRxxPPPPPP) работать явно удобнее (каждая функция в своем байте).
После выполнения этой команды в регистре 2 должно быть число 15.
Ты покажи свою прогу, текущий вариант. Тогда проще будет разговаривать.