Forth http://fforum.winglion.ru/ |
|
0-операндная модель http://fforum.winglion.ru/viewtopic.php?f=36&t=2240 |
Страница 1 из 1 |
Автор: | WingLion [ Пн авг 17, 2009 07:21 ] |
Заголовок сообщения: | |
WingLion писал(а): Форт-машина основана на 0-операндной модели, то есть в формате команды не кодируются регистры источники и приемники информации.
по такому признаку команды >R R> @ и ! к 0-операндной модели не относятся... |
Автор: | mOleg [ Пн авг 17, 2009 07:30 ] |
Заголовок сообщения: | |
WingLion писал(а): WingLion писал(а):Форт-машина основана на 0-операндной модели, то есть в формате команды не кодируются регистры источники и приемники информации.
по такому признаку команды >R R> @ и ! к 0-операндной модели не относятся... не верно понял. Речь о том, что в формате кодирования команды нет поля(ей) отвечающих за кодирование операнда(ов) к примеру, вспомни формат команды ix86 : [OP|REG|R/M] - то есть опокд, источник, приемник под которые отводится по три бита. Это есть двухоперандная модель. В 0-операндной модели в формате команды остается только поле Opcode - а сама операция подразумевает и источник и приемник, причем, на сколько я понимаю, это не обязательно должна быть стековая машина, это может быть и RISC машина, и тем более CISC, но это будет уже не архитектура, а отдельные 0-операндные команды. |
Автор: | WingLion [ Пн авг 17, 2009 07:37 ] |
Заголовок сообщения: | |
Вона как... значит что-то не так с пояснением 0-операндной модели. потому что источники и приемники таки кодируются (шифруются) в опкоде. А мнемоники этот шифр раскрывают. |
Автор: | mOleg [ Пн авг 17, 2009 07:40 ] |
Заголовок сообщения: | |
у Купмана так: "0-Operand instructions do not allow any operands to be associated with the opcode." в переводе: "0-Операндные инструкции не позволяют любым операндам ассоциироваться с опкодом" |
Автор: | WingLion [ Пн авг 17, 2009 07:44 ] |
Заголовок сообщения: | |
Но R> и >R то ассоциируются с конкретными операндами... |
Автор: | mOleg [ Пн авг 17, 2009 07:49 ] |
Заголовок сообщения: | |
WingLion писал(а): Но R> и >R то ассоциируются с конкретными операндами...
еще раз, формат команды в 0-операндной модели состоит только из опкода команды! то есть нету специальных "выделенных" полей для указания операндов. ну, возьми к примеру 4-х битовый проц, там есть система команд: 0 - NOP 1 - AND 2 - XOR 3 - ADD 4 - 0= 5 - lit 6 - 2/ 7 - SUB 8 - DUP 9 - DROP A - if B - R> C - >R D - @ E - ! F - SWAP вот в опкоде просто нет места для хранения по два дополнительных бита на указание приемника и источника данных!!! |
Автор: | Wlad [ Пн авг 17, 2009 12:51 ] |
Заголовок сообщения: | |
Олег, я примерно представляю, в чём проблема. Если вернуться к ООП-анализу, то человек всё равно представляет стеки данных и возвратов как отдельные сущности. В любом случае, мы, либо выделением отдельного набора битов в коде операции, либо разбивая набор кодов операций на отрезки значений, отождествляем соответствующие операции над(к) соответствующим(и) сущностям(и). Случай в твоём исполнении с командами >R и R> - из второго примера. Кстати, ведь и опкоды х86 вполне можно "перемешать", так, что бы не было выделенных полей в коде команды, но мы всё равно будем себе в мозгу иметь объектную модель х86 архитектуры. Понятное дело, что дешифрация команд внутри кристалла усложнится и он наверняка "распухнет" в разы, но это ничего не меняет. Наличие/отсутствие выделенных/назначенных участков в коде операций для идентификации чего-либо - лишь произвол и формальность (хлтя и удобная для восприятия, запоминания и идентификации). |
Автор: | Hishnik [ Пн авг 17, 2009 13:45 ] |
Заголовок сообщения: | |
>R является нуль-операндной командой, потому что сам тип команды уже однозначно определяет приемник и источник (нуль-операндные - это не только те, которые вообще не используют операндов, но и те, кто определяет их самостоятельно, не пользуясь дополнительными кодами). По аналогии, в аккумуляторных архитектурах используются 1-операндные команды, например, "загрузить регистр N в аккумулятор". При этом приемник (аккумулятор) определен самим типом команды и не требует дополнительного уточнения, а вот источник - это операнд (РОН). |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |