25.03.2019, 17:59 [+3 UTC]
в нашей команде: 3 487 чел. | участники онлайн: 8 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.73 (23.03.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
09.03.2019, 10:08

Форум:
24.03.2019, 14:42

Последний вопрос:
25.03.2019, 17:22
Всего: 149085

Последний ответ:
25.03.2019, 17:50
Всего: 258030

Последняя рассылка:
25.03.2019, 15:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
29.11.2011, 06:39 »
Alexvegas
Спасибо большое! Полезная штука!)) [вопрос № 184607, ответ № 268964]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 680
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 522
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 104

Перейти к консультации №:
 

Консультация онлайн # 194840
Раздел: • Assembler
Автор вопроса: Kdsfofwe21 (2-й класс)
Отправлена: 01.03.2019, 12:36
Поступило ответов: 0

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

книга Рудаков Финогенов, "Язык ассемблера - УРОКИ ПРОГРАММИРОВАНИЯ" 2001 года. пояснение для примера 72.1
на странице 364, написано именно так, что создаётся впечатление что сначала пушим в стек SS, ESP, затем непонятно почему то - в стек внутреннего уровня из внешнего стека копируется двухсловный параметр, затем пушится CS, EIP, хотя если посмотреть на код то там четыре пуша подряд, и нету никакого вызова/инициализации другой задачи.
Это ошибка или же такой, непонятный алгоритм работы.

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Состояние: Консультация закрыта

Oтветов пока не поступило.

Мини-форум консультации № 194840
Kdsfofwe21
2-й класс

ID: 402218

# 1

= общий = | 01.03.2019, 12:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Kdsfofwe21:

и ещё хотелось бы узнать, на счёт сегментов LDT как на картинке
ldt_data descr <.......> ;селектор 0+4
.................................................8+4+3
...
В моём понимании: вот есть таблица LDT/GDT, заполняя её тем способом который на картинке то автоматчески(при LLDT/LGDT) там прописываются сегменты. так как они по 8 байт то 0,8,16 - но это для GDT, для LDT уже с 4-ёх, 4,12,20.. поэтому там плюсом идёт 4. Далее плюс 3 это показатель поля RPL для селектора.Но вот почему же для поля ldt_data плюс 3 нету, то есть получается что этот сегмент с запросом нулевого уровня привилегии, хотя это только по картинке, так как объявлено там 0F2h, что и даёт нам присутсвие, 3 уровень, ... ,и тип LDT. И тут опять, то что описано троеточием, это идентификатор сегмента(памяти или дескриптор системного сегмента) то есть для GDT = 1. А для шлюзов, TSS, LDT == 0. Так вот 0F2h - 1111 0010, где 4-ый бит = 1, но он должен быть =0 так как описывается там LDT о чём нам говорит младшая часть байта - 0010.(хотя тут надо плясать от идентификатора) Опять это ошибка что ли в книге?(То что там за что отвечает написал для того, как это именно Я понимаю, потому что может оказаться все по другому а у Меня просто совпадение smile )

-----
Последнее редактирование 01.03.2019, 14:59 Kdsfofwe21 (2-й класс)

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 2

 +2 
 
= общий = | 01.03.2019, 15:20 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Kdsfofwe21:

Мне кажется, Вы слегка запутались.
Есть два направления вызова:
1) из 0-го кольца задачи из 3-го кольца.
Именно это место показано на фрагменте. Здесь нет никаких передач параметров через стек.
2) вызов сервиса 0-го кольца из прикладной программы 3-го кольца.
Вызов осуществляется через селектор сервиса. И в этом селекторе указано количество передаваемых через стек параметров.
Когда происходит вызов сервиса, вот тогда и происходит автоматическое копирование параметров в стек 0-го кольца.

На дополнительные вопросы отвечу попозже... Пока нет времени вникать...

-----
Последнее редактирование 01.03.2019, 15:25 Лысков Игорь Витальевич (Старший модератор)

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

Kdsfofwe21
2-й класс

ID: 402218

# 3

= общий = | 01.03.2019, 15:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Лысков Игорь Витальевич:

Возможно что Я упустил этот момент, думая что передаются параметры при смене уровня привилегий, то есть только при вызове через шлюз, в котором селектор, тут всё понятно спасибо. Но то что указано на картинке, у Меня складывается впечатление, что Я как будто не тот код описываю, и эти разноцветные линии относятся к другим участкам, хотя Я пересматриваю, и вроде все норма, кроме тех замечаний, которые Я там указал.

Дочитал то что Вы отредактировали. На счёт времени, ничего страшного, Я подожду smile спасибо.

-----
Последнее редактирование 01.03.2019, 15:36 Kdsfofwe21 (2-й класс)

Зенченко Константин Николаевич
Старший модератор

ID: 31795

# 4

= общий = | 11.03.2019, 13:10 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Kdsfofwe21:

Блин не успел.

© Цитата: Kdsfofwe21
если посмотреть на код то там четыре пуша подряд,

Но это стек шлюза вызова.

стр 364-365:
"Далее в стек внутреннего уровня из внешнего стека копируется двухсловнные параметры, число которых (от 0 до 31) задано в шлюзе вызова"
Системный вызов, формирует шлюз, вот он и добавляет лишние PUSH'ы.

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.16522 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.73 от 23.03.2019
Версия JS: 1.33 | Версия CSS: 3.35