imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 03.06.2004, 04:07     # 21
Slanj
::VIP::
 
Аватар для Slanj
 
Регистрация: 09.05.2004
Адрес: Киев
Сообщения: 670

Slanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj Сэнсэй
1.В смещении, ты же вроде это уже понял.
2.Перечитай, это ты прав.

Последний раз редактировалось Slanj; 03.06.2004 в 04:16.
Slanj вне форума  
Старый 03.06.2004, 06:02     # 22
basturd
Junior Member
 
Регистрация: 03.06.2003
Сообщения: 167

basturd Путь к славе только начался
ARM это RISC

Смещения (offset) кодируются непосредственно в машинную инструкцию (machine instruction), поэтому они и не бывают очень большими - чаще всего 16 bit. Это имеет особое значение для RISC, т.к. в RISC машинные команды имеют фиксированную длину и кодируются 4 байтами - 32 битами. Т.е. смещение в машинной инструкции RISC съедает половину всех битов отведенных на кодирование машинной инструкции.
basturd вне форума  
Старый 05.06.2004, 12:06     # 23
metton
Guest
 
Сообщения: n/a

Slanj
Цитата:
65535 * 16 = 1048560
Я кажется понял - тут мы показываем что в каждом сегменте есть 4 бита (16) смещений? Если да, то почему только 4, если сегмент у нас 16 бит?
Или смещение задаётся в количествах бит, а не в их адресах относительно начаала сегмента? То есть если смещение 15 пишем 1111, а не 00001111 и оно указывает на 15-ый бит сегмента?

Цитата:
Как уже говорилось в предыдущих темах, ассемблер заменяет аббревиатурами команды процессора.
Так а почему тогда скомпилированные ассемблером под Вынь не работают на Линуксе даже когда один и тот же проц? В этом и есть вопрос
 
Старый 05.06.2004, 12:44     # 24
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
Цитата:
metton:
Так а почему тогда скомпилированные ассемблером под Вынь не работают на Линуксе даже когда один и тот же проц? В этом и есть вопрос
В каждой операционной системе свои объекты, термины и понятия.
Сейчас поясню. Например, понятия Process и Thread.
В винде это одно, а в юникс-системах это другое.
Или еще пример: в винде для переключения между потоками (threads) используется вытесняющая многозадачность (preemptive multitasking многозадачный режим с приоритетами - обеспечивает операционной системе возможность захвата процессора в любой момент времени, независимо от состояния работающих приложений).

Список можно продолжать бесконечно.
Всё, что связанно с ядром операционной системы - является проблемой при портинге програм с одной ОС на другую.

Для решения подобных проблем, используется концепция виртуальных компьютеров (virtual mashines).
Пример: Java (бинарный код будет исполняться в любой ОС, где есть java-virtual mashine) или .NET Framework (бинарный код будет исполняться в любой ОС, где есть CLR).
Virtual Mashines абстрагируют понятия про которые я говорил (потоки, процессы и т.д.).
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 05.06.2004, 16:50     # 25
Slanj
::VIP::
 
Аватар для Slanj
 
Регистрация: 09.05.2004
Адрес: Киев
Сообщения: 670

Slanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj СэнсэйSlanj Сэнсэй
metton
Я вроде нормально описывал. Перечитай эту тему заново.
Сегмент указывает на определенный адрес в памяти. К нему добавляем значение смещения.
1111 = 00001111
Slanj вне форума  
Старый 05.06.2004, 20:54     # 26
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
А значение смещения, если я не ошибаюсь находится в регистре Pi: например адрес начала сегмента находится в начале параграфа т.е. кратен 16, а регистре Pi показывает относительное смещение, ну допустим 2a сложение этих двух значений и есть относительный адрес.
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!
Rundll вне форума  
Старый 06.06.2004, 03:40     # 27
metton
Guest
 
Сообщения: n/a

Programmer
Очень интересно. Кое-что из этого я уже знал, кое-что новое.
Но ты, по-моему, немного не о том...
Ведь если ассмблер переводит программу в команды ПРОЦЕССОРА, а не ОС, то и работать должно на одном процессоре независимо от операционки. Так в чём же дело?
 
Старый 06.06.2004, 09:39     # 28
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
metton

Процессор сам по себе ничего делать не будет. ОС должна запустить исполняемый файл и передавать процессору инструкции для выполнения.
Как видишь, всё идет через операционку.
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 07.06.2004, 23:19     # 29
Rundll
Junior Member
 
Аватар для Rundll
 
Регистрация: 02.11.2003
Адрес: г. Таганрог
Сообщения: 63

Rundll Путь к славе только начался
А если работать через БИОС-прерывания и загружать ассемблер в ОЗУ? Тогда ОС не нужна!
__________________
Америка, Америка - это красиво, но Россия вот где есть СИЛА!!!
Rundll вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 15:21.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.