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/