Автор |
Сообщение |
|
|
Заголовок сообщения: |
|
|
|
>R является нуль-операндной командой, потому что сам тип команды уже однозначно определяет приемник и источник (нуль-операндные - это не только те, которые вообще не используют операндов, но и те, кто определяет их самостоятельно, не пользуясь дополнительными кодами). По аналогии, в аккумуляторных архитектурах используются 1-операндные команды, например, "загрузить регистр N в аккумулятор". При этом приемник (аккумулятор) определен самим типом команды и не требует дополнительного уточнения, а вот источник - это операнд (РОН).
>R является нуль-операндной командой, потому что сам тип команды уже однозначно определяет приемник и источник (нуль-операндные - это не только те, которые вообще не используют операндов, но и те, кто определяет их самостоятельно, не пользуясь дополнительными кодами). По аналогии, в аккумуляторных архитектурах используются 1-операндные команды, например, "загрузить регистр N в аккумулятор". При этом приемник (аккумулятор) определен самим типом команды и не требует дополнительного уточнения, а вот источник - это операнд (РОН).
|
|
|
|
Добавлено: Пн авг 17, 2009 13:45 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Олег, я примерно представляю, в чём проблема.
Если вернуться к ООП-анализу, то человек всё равно представляет стеки данных и возвратов как отдельные сущности.
В любом случае, мы, либо выделением отдельного набора битов в коде операции, либо разбивая набор кодов операций на отрезки значений, отождествляем соответствующие операции над(к) соответствующим(и) сущностям(и).
Случай в твоём исполнении с командами >R и R> - из второго примера.
Кстати, ведь и опкоды х86 вполне можно "перемешать", так, что бы не было выделенных полей в коде команды, но мы всё равно будем себе в мозгу иметь объектную модель х86 архитектуры. Понятное дело, что дешифрация команд внутри кристалла усложнится и он наверняка "распухнет" в разы, но это ничего не меняет.
Наличие/отсутствие выделенных/назначенных участков в коде операций для идентификации чего-либо - лишь произвол и формальность (хлтя и удобная для восприятия, запоминания и идентификации).
Олег, я примерно представляю, в чём проблема.
Если вернуться к ООП-анализу, то человек всё равно представляет стеки данных и возвратов как отдельные сущности.
В любом случае, мы, либо выделением отдельного набора битов в коде операции, либо разбивая набор кодов операций на отрезки значений, отождествляем соответствующие операции над(к) соответствующим(и) сущностям(и).
Случай в твоём исполнении с командами >R и R> - из второго примера.
Кстати, ведь и опкоды х86 вполне можно "перемешать", так, что бы не было выделенных полей в коде команды, но мы всё равно будем себе в мозгу иметь объектную модель х86 архитектуры. Понятное дело, что дешифрация команд внутри кристалла усложнится и он наверняка "распухнет" в разы, но это ничего не меняет.
Наличие/отсутствие выделенных/назначенных участков в коде операций для идентификации чего-либо - лишь произвол и формальность (хлтя и удобная для восприятия, запоминания и идентификации).
|
|
|
|
Добавлено: Пн авг 17, 2009 12:51 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
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
вот в опкоде просто нет места для хранения по два дополнительных бита на указание приемника и источника данных!!!
[quote="WingLion"]Но R> и >R то ассоциируются с конкретными операндами...[/quote]
еще раз, формат команды в 0-операндной модели состоит только из опкода команды!
то есть нету специальных "выделенных" полей для указания операндов.
ну, возьми к примеру [url=http://www.cse.cuhk.edu.hk/~phwl/mt/public/archives/old/msl16/msl16.html]4-х битовый проц[/url], там есть система команд:
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
вот в опкоде просто нет места для хранения по два дополнительных бита на указание приемника и источника данных!!!
|
|
|
|
Добавлено: Пн авг 17, 2009 07:49 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Но R> и >R то ассоциируются с конкретными операндами...
Но R> и >R то ассоциируются с конкретными операндами...
|
|
|
|
Добавлено: Пн авг 17, 2009 07:44 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
у Купмана так: "0-Operand instructions do not allow any operands to be associated with the opcode."
в переводе: "0-Операндные инструкции не позволяют любым операндам ассоциироваться с опкодом"
у Купмана так: "0-Operand instructions do not allow any operands to be associated with the opcode."
в переводе: "0-Операндные инструкции не позволяют любым операндам ассоциироваться с опкодом"
|
|
|
|
Добавлено: Пн авг 17, 2009 07:40 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
Вона как... значит что-то не так с пояснением 0-операндной модели.
потому что источники и приемники таки кодируются (шифруются) в опкоде.
А мнемоники этот шифр раскрывают.
Вона как... значит что-то не так с пояснением 0-операндной модели.
потому что источники и приемники таки кодируются (шифруются) в опкоде.
А мнемоники этот шифр раскрывают.
|
|
|
|
Добавлено: Пн авг 17, 2009 07:37 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
WingLion писал(а): WingLion писал(а):Форт-машина основана на 0-операндной модели, то есть в формате команды не кодируются регистры источники и приемники информации. по такому признаку команды >R R> @ и ! к 0-операндной модели не относятся...
не верно понял. Речь о том, что в формате кодирования команды нет поля(ей) отвечающих за кодирование операнда(ов)
к примеру, вспомни формат команды ix86 : [OP|REG|R/M] - то есть опокд, источник, приемник под которые отводится по три бита. Это есть двухоперандная модель. В 0-операндной модели в формате команды остается только поле Opcode - а сама операция подразумевает и источник и приемник, причем, на сколько я понимаю, это не обязательно должна быть стековая машина, это может быть и RISC машина, и тем более CISC, но это будет уже не архитектура, а отдельные 0-операндные команды.
[quote="WingLion"]WingLion писал(а):Форт-машина основана на 0-операндной модели, то есть в формате команды не кодируются регистры источники и приемники информации. по такому признаку команды >R R> @ и ! к 0-операндной модели не относятся...[/quote]
не верно понял. Речь о том, что в формате кодирования команды нет поля(ей) отвечающих за кодирование операнда(ов)
к примеру, вспомни формат команды ix86 : [OP|REG|R/M] - то есть опокд, источник, приемник под которые отводится по три бита. Это есть двухоперандная модель. В 0-операндной модели в формате команды остается только поле Opcode - а сама операция подразумевает и источник и приемник, причем, на сколько я понимаю, это не обязательно должна быть стековая машина, это может быть и RISC машина, и тем более CISC, но это будет уже не архитектура, а отдельные 0-операндные команды.
|
|
|
|
Добавлено: Пн авг 17, 2009 07:30 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
WingLion писал(а): Форт-машина основана на 0-операндной модели, то есть в формате команды не кодируются регистры источники и приемники информации.
по такому признаку команды >R R> @ и ! к 0-операндной модели не относятся...
[quote="WingLion"]Форт-машина основана на 0-операндной модели, то есть в формате команды не кодируются регистры источники и приемники информации.[/quote]
по такому признаку команды[b] >R R> @ [/b]и [b]![/b] к 0-операндной модели не относятся...
|
|
|
|
Добавлено: Пн авг 17, 2009 07:21 |
|
|
|
|