Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 03:17

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Вопрос несведующего по архитектуре
СообщениеДобавлено: Пн мар 25, 2019 19:38 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Почему в архитектурах программно недоступен регистр потока выполнения (IP)? В чём причины.

Как я понял IP явно есть в ARM (даже в вики написано) и, кажется, в MIPS

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Пн мар 25, 2019 20:31 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
На каком уровне недоступен?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Пн мар 25, 2019 20:51 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
diver писал(а):
На каком уровне недоступен?

Любом.
Мне больше интересен уровень приложения.
Не очень я разбираюсь в арихитектурах.
Да и вообще доступность IP это норма или искллючение некоторых архитектур?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Пн мар 25, 2019 22:27 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Почему в архитектурах программно недоступен регистр потока выполнения (IP)? В чём причины.

это почему же не доступен-то?
Вот, скажем команда Branch (т.е. jmp) по сути прямая загрузка адреса в IP, то же и с CALL и с RET происходит.
По сути вместо LD IP, ADDR пишем JMP ADDR.
Или что вы подразумеваете под недоступностью IP?
кстати, есть еще замечательная команда LITERAL, которая тоже к IP относиться

кроме того, сам IP не всегда нужен, а вот сохраненное его значение, которое доступно по R@ или R> в форте пользуется активно.
Ну, и еще, надо оговорить, что в разных типах ШК есть нюансы использования этого самого IP (который уже Interpretation pointer, а не instruction pointer )

Цитата:
Как я понял IP явно есть в ARM (даже в вики написано) и, кажется, в MIPS

Я не знаю такой архитектуры, гдеб не было IP

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Пн мар 25, 2019 23:32 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
В x86 IP/EIP/RIP программно не доступен. Такой регистр как бы есть но его как бы нет. И да всякие там каллы и джампы не считаются, поскольку они не позволяют аперировать апи непосредсвенно

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Пн мар 25, 2019 23:58 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
И да всякие там каллы и джампы не считаются, поскольку они не позволяют аперировать апи непосредсвенно

забавно, а как вы собираетесь оперировать IP? Что же нужно кроме JMP и подобного?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 03:01 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
Victor__v писал(а):
И да всякие там каллы и джампы не считаются, поскольку они не позволяют аперировать апи непосредсвенно

забавно, а как вы собираетесь оперировать IP? Что же нужно кроме JMP и подобного?

Вариант на вскидку: создание лямбд внутри определения без абсолютной адресации.
Что-то вроде
...
jmp n
La:
... code
...
ret
n:
lea r1, [ip-La]

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 08:25 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Вариант на вскидку: создание лямбд внутри определения без абсолютной адресации.
Что-то вроде
...
jmp n
La:
... code
...
ret
n:
lea r1, [ip-La]

что-то подобное у меня

а вообще делается с помощью
CALL n
тут данные или код

n: R>
т.е. сохраняем адрес возврата в стек возвратов, после чего оттуда его выгребаем.
Очень распространенная практика.

(если я правильно вас понял, конечно)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 09:23 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Вот и вопрос нафига городить вызовы, если можно, манипулируя IP, без этого обойтись?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 10:08 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
jmp eax это в принципе то же самое, что mov eip, eax. Еще в fasm есть символ $, который в процессе компиляции равен адресу компилируемой команды.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 10:20 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
Hishnik писал(а):
jmp eax это в принципе то же самое, что mov eip, eax. Еще в fasm есть символ $, который в процессе компиляции равен адресу компилируемой команды.

А если надо наоборот?
mov eax, eip

Это ж позволяет использовать относительную адресацию в большем кол-ве мест.
Вы ещё скажите, что можно так
: EIP R@ ;

Я прекрасно знаю что EIP в x86 завуалирован. Вопрос почему. Причины, и везде ли так и почему, если да?

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 11:07 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Вот и вопрос нафига городить вызовы, если можно, манипулируя IP, без этого обойтись?

а зачем плодить кучу команд (которых итак дофига) не особо нужных?
Вопрос дурацкий у вас. Метод решить проблему есть? - есть! зачем тогда что-то добавлять или менять?
Что вы хотите выиграть? (вместо пары опкодов один - это слишком мелко)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 11:24 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
mOleg писал(а):
Victor__v писал(а):
Вот и вопрос нафига городить вызовы, если можно, манипулируя IP, без этого обойтись?

а зачем плодить кучу команд (которых итак дофига) не особо нужных?
Вопрос дурацкий у вас. Метод решить проблему есть? - есть! зачем тогда что-то добавлять или менять?
Что вы хотите выиграть? (вместо пары опкодов один - это слишком мелко)


По порядку
В1) Зачем? Я и спрашиваю зачем. Вся тема об этом. Множество команд где? Тут про архитектуру процов в общем, а не только CISC
В2) Опять же вся тема об необходимости программного доступа к регистру IP. Ваш довод, думается мне, не прокатит в ARM)
В3) САУ хочу выиграть) Просто интересуюсь вопросом. Мне любопытно, почему в одних архитектурах IP доступен программно, а в других нет.

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 13:17 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Victor__v писал(а):
Почему в архитектурах программно недоступен регистр потока выполнения (IP)? В чём причины.

Как я понял IP явно есть в ARM (даже в вики написано) и, кажется, в MIPS

Ответа: Tак звёзды сошлись! не достаточно? :)

Могут же быть ещё вопросы:

Почему столько разных архитектур процессоров/контроллеров?
Почему именно эта "архитектура" выиграла рыночное использование?
Почему производители не раскрывают полную информацию об своих изделиях без NDA?
...
и.т.д. и.т.п.

Скорее всего экономили на опкодах команд (может их уже не хватало) и упрощении схемотехники.
+ исторические реалии развития предыдущих уже зарекомендовавших в изделиях разработoк.

P.S. Intel 4004
Intel 4004 Instructions Set
Как разрабатывались первые микросхемы Intel

В PDP-11 был прямой доступ к IP (в MSP-430 тоже остался)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Вопрос несведующего по архитектуре
СообщениеДобавлено: Вт мар 26, 2019 16:28 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Victor__v писал(а):
Мне любопытно, почему в одних архитектурах IP доступен программно, а в других нет.

Так он и доступен программно 8) только не так, как вам хочется 8)

Если брать набор команд MISC, то в нем, ясно, минимум необходимый.

Вообще, логично стремление реализовать наиболее простым способом наиболее часто используемые операции в железе,
оставив за редкими командами более сложную многоопкодовую организацию.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB