Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DGROUP

1.8K
30 октября 2007 года
Kama
153 / / 04.05.2006
возник вот такой вопрос, что такое DGROUP, помогите,плз
искал ,ничего полезного не нашел.
а как работает програмный счетчик ORG?
349
30 октября 2007 года
Phantom-84
656 / / 27.10.2005
DGROUP - это общее имя, используемое при объединении сегментов данных, включая стек, в сегментной модели памяти.

ORG - это не название программного счетка, а директива. В большинстве ассемблеров программный счетчик обозначается символом $. Директива ORG позволяет установить необходимое значение программного счетчика. Обычно она выравнивает текущее значение счетчика на заданное значение, например, если текущее значение счетчика равно 4 и указана директива ORG 10, то компилятором будет зарезервирован участок длиной 6 байт, так что текущая позиция будет равна 10. Однако в fasm'е, например, директива ORG действует совершенно по другому. Она просто устанавливает текущее значение счетчика равным указанному значению. В терминологии fasm это называется началом нового адресного пространства. А если тебе в fasm'е нужно выровнять текущее значение счетчика на заданное значение, ты должен использовать директиву резервирования данных, например, rb 10-$
1.6K
01 ноября 2007 года
Vov4ick
476 / / 01.02.2007
Я бы сказал, DGROUP - имя, назначаемое по умолчанию при использовании упрощённых директив определения сегментов и в компиляторах ЯВУ, что облегчает их совместное использование.
349
01 ноября 2007 года
Phantom-84
656 / / 27.10.2005
Vov4ick, некоторые компиляторы объединяет сегменты в одну группу даже тогда, когда упрощенные директивы не используются. Там объединение выполняется по классу сегмента, который указывается в кавычках при объявлении нового сегмента. Обычно объединяются сегменты классов BEGDATA, DATA, BSS и STACK, причем именно в том порядке, который я указал.
1.8K
02 ноября 2007 года
Kama
153 / / 04.05.2006
а зачем сегменты вообще обьединять?
а что за классы BEGDATA,DATA,BSS, для чего они нужны?
А где можно найти информацию в картинках про адрессное пространство , сегменты...
до меня не очень то доходит...:(
349
02 ноября 2007 года
Phantom-84
656 / / 27.10.2005
С объединенным сегментом проще работать, т.к. он представляет собой единое адресное пространство, для доступа к которому можно использовать один и тот же сегментный регистр.
Про классы я уже написал. Это имена, которые записываются в кавычках при объявлении нового сегмента, например (давно я этого не писал, но вроде бы так):

myseg segment para public "BSS"

Имена классов сохраняются в объектниках. Компоновщики их могут использовать для объединения сегментов.

Где найти информацию, не знаю. Сейчас работа с сегментами не очень актуальна, т.к. во FLAT-модели их нет, а есть секции. Но принцип остается тем же - секции тоже нужно группировать по назначению.
1.8K
02 ноября 2007 года
Kama
153 / / 04.05.2006
но эти классы наверное несут в себе что-то... или можно любое имя дать.
А я читаю Зубкова , про модель флат там говорилось а вот про секции первый раз слышу... и если у них один принцип зачем нужно было вводить новое понятие.
349
02 ноября 2007 года
Phantom-84
656 / / 27.10.2005
Можно любое имя дать, но объединяться будут только сегменты определенных классов. Секции и сегменты - это разные вещи. Но и секции, и сегменты группируются по назначению - код отдельно, данные отдельно.
1.8K
03 ноября 2007 года
Kama
153 / / 04.05.2006
Цитата: Phantom-84
Можно любое имя дать, но объединяться будут только сегменты определенных классов. Секции и сегменты - это разные вещи. Но и секции, и сегменты группируются по назначению - код отдельно, данные отдельно.




спасибо...понятно
но походу , один вопрос, какой на сегодняшний день самый мощный отладчик?
А пользуясь отладчиком можно понять суть сегментов , адресного пространства?

хотелось бы спросить совета.. скачал книгу и хочу распечатать , только не пойму насколько она хорошая...я начинаюший и хочу знать все о асме
http://slil.ru/25057362

349
03 ноября 2007 года
Phantom-84
656 / / 27.10.2005
Отладчиками пользуюсь редко. Для Windows по-моему подойдет SoftICE.
260
03 ноября 2007 года
Ramon
1.1K / / 16.08.2003
Есть очень хорошее книжко:
http://www.ozon.ru/context/detail/id/2317806/

Больше того, чем изложено в ней знать не нужно.

PS: А почему юРОВ, зУБКОВ и иже с ними идут лесом догадывайтесь сами.
1.8K
05 ноября 2007 года
Kama
153 / / 04.05.2006
Цитата: Ramon
Есть очень хорошее книжко:
http://www.ozon.ru/context/detail/id/2317806/

Больше того, чем изложено в ней знать не нужно.

PS: А почему юРОВ, зУБКОВ и иже с ними идут лесом догадывайтесь сами.



у нас в библиотеке есть эта книжка на английском... пытался читать , не понравилась, не интересная...
------------------------------------------------------------------------------
читал уроки ( http://www.codenet.ru/progr/asm/newbee/lesson2.php )

а для рограммирования под ДОС тоже выделяется 4ГБ? Думаю да, но не уверен, (64кб и 65536 сегментов максимум. Это и есть 4ГБ.)

А как процессору знать допустим что 0030:4012 это сегмент кода(я пример привожу )
Есть ли диапозоны сегментов, например 0000-0050 сегмент кода, и т.д.

А зачем виртуальная память если есть сегменты (физически встроеные ячейки в памяти)?
-------------------------------------------------------------------------

Цитата: Phantom-84
Отладчиками пользуюсь редко. Для Windows по-моему подойдет SoftICE.



а для UNIX/LINUX ?

1.8K
05 ноября 2007 года
Kama
153 / / 04.05.2006
не буду создавать еще одну тему...
цитата из урока>>
http://www.codenet.ru/progr/asm/newbee/lesson2.php

Цитата:
Память 0-0000FFFF не используется и служит для выявления нулевых указателей, значит, если вы укажете адрес 0000С567, то он будет считаться нулевым, удобно, не правда ли? Любая попытка обратится к этой памяти приводит к ошибке. Память выше 80000000 одна для всех процессов. В этой памяти находится код нулевого кольца, структуры ядра, код планировщика задач, код драйверов, диспетчер ввода вывода, таблица прерываний и т.д. Любая попытка обратиться к памяти ядра приводит к ошибке и к немедленному завершению приложения. Память в диапазоне 00001000-7FFFFFFF доступна для 3 кольца, т.е. для вашего приложения. С ней вы, что хотите то и делаете, в неё также грузятся Дллки.



Вопрос : а память для 2ого и 1ого кольца где находится, а точнее от куда начинается и где заканчивается?

261
05 ноября 2007 года
ahilles
1.5K / / 03.11.2005
Цитата: Kama

а для рограммирования под ДОС тоже выделяется 4ГБ? Думаю да, но не уверен, (64кб и 65536 сегментов максимум. Это и есть 4ГБ.)


адрес в режиме реальных адресов вычисляется так <сегмент> shl 4 +<адрес> в итоге 1 МБ памяти.
хотя если произвести какие-то "извращения" то можно в режиме реальных адресов использовать 4 ГБ памяти.

Цитата: Kama

Вопрос : а память для 2ого и 1ого кольца где находится, а точнее от куда начинается и где заканчивается?


в Windows нет порграмм работающих на 2 и 1 кольцах.

1.8K
06 ноября 2007 года
Kama
153 / / 04.05.2006
Цитата: ahilles
адрес в режиме реальных адресов вычисляется так <сегмент> shl 4 +<адрес> в итоге 1 МБ памяти.
хотя если произвести какие-то "извращения" то можно в режиме реальных адресов использовать 4 ГБ памяти.


в Windows нет порграмм работающих на 2 и 1 кольцах.



ну допустим что они в Виндовсе не нужны , а тогда где их преминяют,да и все равно у них (если они существуют) должен быть адрес. А насчет того где они используются, ну эти кольца , то как я помню для сервисов ОС, это написано в iuit.ru правда не доконца, или непонятно мне

349
06 ноября 2007 года
Phantom-84
656 / / 27.10.2005
Они (кольца) используются там, где в них бывает необходимость. Мне еще не доводилось видеть системы, где бы использовались все 4 кольца (максимум три, но чаще всего два). Любые страницы памяти, отображаемые в сегментах с DPL, равным 2 или 3, будут памятью, относящейся к кольцам 2 или 3.
1.8K
07 ноября 2007 года
Kama
153 / / 04.05.2006
Цитата: ahilles
адрес в режиме реальных адресов вычисляется так <сегмент> shl 4 +<адрес> в итоге 1 МБ памяти.
хотя если произвести какие-то "извращения" то можно в режиме реальных адресов использовать 4 ГБ памяти.




чесно говоря не понял а на примере показать можно?

Цитата: Phantom-84
Они (кольца) используются там, где в них бывает необходимость. Мне еще не доводилось видеть системы, где бы использовались все 4 кольца (максимум три, но чаще всего два). Любые страницы памяти, отображаемые в сегментах с DPL, равным 2 или 3, будут памятью, относящейся к кольцам 2 или 3.



PL как я понимаю Privelege Level а что означает D?

349
07 ноября 2007 года
Phantom-84
656 / / 27.10.2005
Читай manual по защищенному режиму. D - это Descriptor.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог