разработка виртуального процессора, помогите разработать виртуальный процессор |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
разработка виртуального процессора, помогите разработать виртуальный процессор |
blackhard |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
помогите сделать задание задача такая:Разработать виртуальный процессор для арифметических операций над целыми числами.
Система команд-арифметические операции над содержимым регистров ввод и вывод значений регистров,условный и безусловный переход к команде заданного номера.длинна команды 3 байта включает в себя код операции (6бит) и номер 3х регистров (по 6 бит),в первых 2Х содержаться операнды, в 3й заносится результат операции. дать описание системы команд и программу для вычисления суммы квадратов первых n натуральных чисел.препод вообще ниче не обьяснил по этой теме и я блин даже не представляю как это сделать в паскале.мнеб хотяб понять как это делать |
blackhard |
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 151 Пол: Мужской Реальное имя: иван Репутация: 0 |
вобщем опять нужна помощь.доделал прогу и отправил препаду,а он написал что она должна работать с командами заданными в машинном коде
сейчас она работает вот с такими командами IN 1 IN 2,1 IN 4,0 AD 1,2,1 IN 3,1 MUL 3,3,5 AD 4,5,4 AD 3,2,3 CASE 3<1 TO 6 OUTPUT 4 так вчем мой вопрос: например команда in 1 в машинном коде выглядит примерно так так 010100 000001 000000 000000 если я напишу такую команду прога попросит ввести число в регистр 1 ну а если мне надо ввести уже заданное число т.е in 1 15 а по заданию у меня команда длинной 3Б номер команды 6б и номера регистров 6б и где тогда задавать число 15 ? и тоже самое с командой условия как задать <>= такие знаки ? |
Lapp |
Сообщение
#3
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
если я напишу такую команду прога попросит ввести число в регистр 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. Ты покажи свою прогу, текущий вариант. Тогда проще будет разговаривать. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 27.04.2024 23:54 |