Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
Неоднократно в листингах дизассемблированных программ(via IdaPRO) натыкался на следующее: Код: plaintext 1. Какой в этом смысл? Как я понимаю, содержимое eax не измениться (проги под винду, соответственно, никкой фигни с сегментами :) и дескрипторами быть не может). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2006, 15:49 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
возможно, компиляция была без оптимизации. Например, ассемблерный код от gcc обретает осмысленность только начиная с -O2. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2006, 16:26 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
maXmoвозможно, компиляция была без оптимизации. Например, ассемблерный код от gcc обретает осмысленность только начиная с -O2. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm У меня тоже такая мысль была, но я думал, может, это типа продвинутый вариант NOP или выравнивания. :) Или флаги сбрасываются, но это вряд ли, там потом ничего такого не было, чтобы флаги юзало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2006, 16:29 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
ErV Код: plaintext 1. Почему это вдруг не изменится? Квадратные скобочки видишь? Что они означают, а? ErV (проги под винду, соответственно, никкой фигни с сегментами :) и дескрипторами быть не может).Уууу как все запущено. И куда ж по вашему из под винды делись сегменты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2006, 19:10 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
White Owl ErV Код: plaintext 1. Почему это вдруг не изменится? Квадратные скобочки видишь? Что они означают, а? ErV (проги под винду, соответственно, никкой фигни с сегментами :) и дескрипторами быть не может).Уууу как все запущено. И куда ж по вашему из под винды делись сегменты? Блин! Ну почему каждое мое сообщение вызывает встречный наезд! к вашему сведению, "вагоноуважаемый глубокоуважатый", команда lea производит загрузку в указанные регистр адреса переменной, которой в данном случае, как я понил, является адрес, записанный в eax, квадратные скобочки означают обращение к памяти. базой переменной является содержимое eax, +0 - чтос нулевым смещением. может, я где то и ошибся, но получается что в eax загружается содержимое eax + 0. Если я ошибаюсь, исправть. - асм не мой "родной язык". Сегменты из винды никуда не девались, просто в защищенном режиме используются дескрипторы, это раз, а два - каждая виндовская прога построена во FLAT модели памяти, т.е. - у неё только один сегмент данных, он же сегмент кода. Как я помню, более низкоуровневые функциилибо недоступны (или доступны под нулевым кольцом защиты), либо просто не требуются. Я не спец в асме, потому и спросил по поводу lea eax, [eax+0] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:18 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
вообще мне тоже кажется, что lea eax, [eax+0] по сути то же самое что и add eax, 0 хотя с удовольствием узнаю, в чем мое заблуждение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:47 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
White OwlКвадратные скобочки видишь? Что они означают, а?выделение целой части? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:50 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
--null--по сути то же самое что и add eax, 0у lea байтов, вроде, больше будет. Плюс на флаги не влияет (сложение, кажись, влияет). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:52 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
да, конечно, lea длиннее, я говорил исключительно о конечном результате в eax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:56 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
maXmo White OwlКвадратные скобочки видишь? Что они означают, а?выделение целой части? ??С чего бы вдруг?? Асм ведь(8086) изначально с целыми числами (8086) работет, для "нецелых" есть сопроцессор и спец команды... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:59 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
шучу я. Ждём Овула. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 16:01 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
шутки у вас :-) скобки по-моему означает что в регистре находится адрес и именно с ним производится действие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 16:03 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
Именно что работа с адресом. Чтение 32-х битного значения в EAX из ячейки памяти адресуемой DS:EAX. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 18:01 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
ErVСегменты из винды никуда не девались, просто в защищенном режиме используются дескрипторы, это раз, а два - каждая виндовская прога построена во FLAT модели памяти, т.е. - у неё только один сегмент данных, он же сегмент кода. Как я помню, более низкоуровневые функциилибо недоступны (или доступны под нулевым кольцом защиты), либо просто не требуются. ой как все запущено.... читать учебники по защищеному режиму и срочно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 18:09 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
а чего такого страшного сказал ErV? Если не вдаваться в ботанику защищенного режима (где действительно существуют все эти селекторы и дескрипторы), на прикладном уровне - виндовая модель FLAT как я понимаю - похожа на модель DOS-овского com модуля. А там SS,DS и CS настраивались действительно на один и тот же сегмент, это точно. То есть и в винде создается один 32bit сегмент для кода и памяти. Что собственно и видит прикладной программист. Ну а то, что в результате lea eax, [eax+0] произойдет просто помещение содержимого eax+0 в eax же - это однозначно. И мало того - ни от каких сегментов это не зависит imho конечно :-) Зависит от модели памяти. Я так понимаю, что квадратные скобки в данном случае гласят, что заключенное в них надо рассматривать как near указатели. А они базируются от нуля, поскольку модель у нас FLAT. Cоответственно, это эквивалентно арифметической операции с обычными числами (абсолютными значениями указателей). Я только под DOS юзал асм и если в винде какие-то нововведения (???), то с удовольствием послушаю :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 23:24 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
--null--а чего такого страшного сказал ErV? Если не вдаваться в ботанику защищенного режимаУгу. "Если не вдаваться в ботанику". --null--Ну а то, что в результате lea eax, [eax+0] произойдет просто помещение содержимого eax+0 в eax же - это однозначно. И мало того - ни от каких сегментов это не зависит imho конечно :-)ну так содержимого же, а не самого eax. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 00:41 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
White OwlИменно что работа с адресом. Чтение 32-х битного значения в EAX из ячейки памяти адресуемой DS:EAX.неа, низачот :) возможно, ты путаешь с lds и les lea, как всем известно, к памяти вообще не обращается, это, кстати, используется для быстрых неадресных вычислений, т.к. эта операция позволяет за один такт умножить один регистр на константу, прибавить другой регистр и ещё одну константу и результат занести в третий. Очень компактно и быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 14:55 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
White Owl ErVСегменты из винды никуда не девались, просто в защищенном режиме используются дескрипторы, это раз, а два - каждая виндовская прога построена во FLAT модели памяти, т.е. - у неё только один сегмент данных, он же сегмент кода. Как я помню, более низкоуровневые функциилибо недоступны (или доступны под нулевым кольцом защиты), либо просто не требуются. ой как все запущено.... читать учебники по защищеному режиму и срочно! Мне тебе лекцию прочитать? Сказал же - АСМ часто не юзаю! Можно конечно, всякой хрени про GDTR LDTR понаписать, а смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 18:18 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
И вообще - если я что-то вдруг ляпнул, разве так трудно вкратце объяснить в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 18:24 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
maXmoнеа, низачот :) возможно, ты путаешь с lds и les(бум лбом об стол) И ведь действительно путаю... Прошу прощения, наврал я. Иех, пора в отпуск... Или снова плотно заняться ассемблером? :) ErVИ вообще - если я что-то вдруг ляпнул, разве так трудно вкратце объяснить в чем проблема?Дескрипторы в защищеном режиме это практически те же самые сегменты в реальном. С двумя различиями: 1) куски памяти адресованые сегментами реального могут перехлестываться а память адресованая через дескрипторы в защищеном не может. 2) процесс в реальном режиме может обращаться к любому сегменту, а на процесс в защищеном наложены некоторые ограничения. Но со всех остальных точек зрения сегменты и дескрипторы это одно и тоже. Они даже хранятся в одних и тех же регистрах процессора :) Нельзя говорить что в "проге под винду, соответственно, никкой фигни с сегментами", там этой фигни намного больше на самом деле. Под виндой ты имеешь точно такой же доступ к сегментным регистрам и точно так же можешь в свой проге жонглировать их содержимым. И точно так же как и в реальном режиме надо всегда учитывать что у тебя лежит в DS, а что в ES. И сегмент данных далеко не всегда равняется сегменту кода. А чаще всего это два разных сегмента (или вернее дескриптора если пользоваться терминологией защищеного режима :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 18:42 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
там же флат + страничная организация и всё. почему тогда нет far pointer'ов ? ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 18:56 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
http://en.wikipedia.org/wiki/Flat_memory_modelThe advantage of the flat memory model is that applications running in such a model, unlike applications running in a segmented memory model, do not have to switch segments to access additional code or data. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 19:04 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
maXmoтам же флат + страничная организация и всё. почему тогда нет far pointer'ов ?Почему нет? Есть конечно. Чтобы их не было нужно физически выдрать из процессора сегментные регистры :) А Википедия права. Только "do not have to", не означает "not allowed to" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 19:50 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
White OwlТолько "do not have to", не означает "not allowed to" :)а это можно сделать не рискуя вызвать ошибку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 22:18 |
|
||
|
Вопрос по Ассемблеру.
|
|||
|---|---|---|---|
|
#18+
maXmo White OwlТолько "do not have to", не означает "not allowed to" :)а это можно сделать не рискуя вызвать ошибку?Да, конечно. Программа может обращаться к памяти по любому из дескрипторов до тех пор пока она на нулевом кольце или является владельцем этих дескрипторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2006, 22:57 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33778646&tid=1346778]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 448ms |

| 0 / 0 |
